addPartOfSpeechDetails
R2026b文書への品詞タグの追加
構文
説明
addPartOfSpeechDetails を使用して、品詞タグを文書に追加します。
関数は、英語、日本語、ドイツ語、および韓国語のテキストをサポートしています。
は、updatedDocuments = addPartOfSpeechDetails(documents)documents 内の品詞を検出し、トークンの詳細を更新します。この関数は、既定では、品詞タグを付けるためにテキストを再トークン化します。たとえば、この関数は "you're" という単語を "you" と "'re" というトークンに分割します。updatedDocuments から品詞の詳細を取得するには、tokenDetails を使用します。
は、1 つ以上の名前と値の引数を使用して追加オプションを指定します。たとえば、updatedDocuments = addPartOfSpeechDetails(documents,Name=Value)addPartOfSpeechDetails(documents,DiscardKnownValues=true) は、以前に計算された詳細を破棄し、それらを再計算することを指定します。
ヒント
addPartOfSpeechDetails は、lower 関数、upper 関数、erasePunctuation 関数、normalizeWords 関数、removeWords 関数、および removeStopWords 関数を使用する前に使用します。addPartOfSpeechDetails は、これらの関数によって削除される情報を使用するためです。
例
サンプル データを読み込みます。ファイル sonnetsPreprocessed.txt には、シェイクスピアのソネット集の前処理されたバージョンが格納されています。ファイルには、1 行に 1 つのソネットが含まれ、単語がスペースで区切られています。sonnetsPreprocessed.txt からテキストを抽出し、テキストを改行文字で文書に分割した後、文書をトークン化します。
filename = "sonnetsPreprocessed.txt";
str = extractFileText(filename);
textData = split(str,newline);
documents = tokenizedDocument(textData);最初のいくつかのトークンの詳細を表示します。
tdetails = tokenDetails(documents); head(tdetails)
Token DocumentNumber LineNumber Type Language
___________ ______________ __________ _______ ________
"fairest" 1 1 letters en
"creatures" 1 1 letters en
"desire" 1 1 letters en
"increase" 1 1 letters en
"thereby" 1 1 letters en
"beautys" 1 1 letters en
"rose" 1 1 letters en
"might" 1 1 letters en
addPartOfSpeechDetails 関数を使用して、文書に品詞の詳細を追加します。この関数は、まず文書に文の情報を追加してから、tokenDetails によって返される table に品詞タグを追加します。最初のいくつかのトークンについて、更新されたトークンの詳細を表示します。
documents = addPartOfSpeechDetails(documents); tdetails = tokenDetails(documents); head(tdetails)
Token DocumentNumber SentenceNumber LineNumber Type Language PartOfSpeech
___________ ______________ ______________ __________ _______ ________ ______________
"fairest" 1 1 1 letters en adjective
"creatures" 1 1 1 letters en noun
"desire" 1 1 1 letters en noun
"increase" 1 1 1 letters en noun
"thereby" 1 1 1 letters en adverb
"beautys" 1 1 1 letters en noun
"rose" 1 1 1 letters en noun
"might" 1 1 1 letters en auxiliary-verb
tokenizedDocument を使用して日本語のテキストをトークン化します。
str = [
"恋に悩み、苦しむ。"
"恋の悩みで 苦しむ。"
"空に星が輝き、瞬いている。"
"空の星が輝きを増している。"
"駅までは遠くて、歩けない。"
"遠くの駅まで歩けない。"
"すもももももももものうち。"];
documents = tokenizedDocument(str);日本語のテキストの場合、tokenDetails を使用して品詞の詳細を取得できます。英語のテキストの場合、最初に addPartOfSpeechDetails を使用しなければなりません。
tdetails = tokenDetails(documents); head(tdetails)
Token DocumentNumber LineNumber Type Language PartOfSpeech Lemma Entity
_______ ______________ __________ ___________ ________ ____________ _______ __________
"恋" 1 1 letters ja noun "恋" non-entity
"に" 1 1 letters ja adposition "に" non-entity
"悩み" 1 1 letters ja verb "悩む" non-entity
"、" 1 1 punctuation ja punctuation "、" non-entity
"苦しむ" 1 1 letters ja verb "苦しむ" non-entity
"。" 1 1 punctuation ja punctuation "。" non-entity
"恋" 2 1 letters ja noun "恋" non-entity
"の" 2 1 letters ja adposition "の" non-entity
tokenizedDocument を使用してドイツの語テキストをトークン化します。
str = [
"Guten Morgen. Wie geht es dir?"
"Heute wird ein guter Tag."];
documents = tokenizedDocument(str)documents =
2×1 tokenizedDocument:
8 tokens: Guten Morgen . Wie geht es dir ?
6 tokens: Heute wird ein guter Tag .
ドイツ語テキストの品詞の詳細を取得するには、まず addPartOfSpeechDetails を使用します。
documents = addPartOfSpeechDetails(documents);
品詞の詳細を表示するには、tokenDetails 関数を使用します。
tdetails = tokenDetails(documents); head(tdetails)
Token DocumentNumber SentenceNumber LineNumber Type Language PartOfSpeech
________ ______________ ______________ __________ ___________ ________ ____________
"Guten" 1 1 1 letters de adjective
"Morgen" 1 1 1 letters de noun
"." 1 1 1 punctuation de punctuation
"Wie" 1 2 1 letters de adverb
"geht" 1 2 1 letters de verb
"es" 1 2 1 letters de pronoun
"dir" 1 2 1 letters de pronoun
"?" 1 2 1 punctuation de punctuation
入力引数
入力文書。tokenizedDocument 配列として指定します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: DiscardKnownValues=true は、以前に計算された詳細を破棄し、それらを再計算することを指定します。
文書を再トークン化する方法。次のいずれかの値として指定します。
'part-of-speech'– 品詞タグを付けるためにトークンを変換します。この関数は以下のタスクを実行します。複合語を分割する。たとえば、
"wanna"という複合語を"want"と"to"というトークンに分割します。これには、アポストロフィを含む複合語も含まれます。たとえば、この関数は"don't"という単語を"do"と"n't"というトークンに分割します。文を終わらせないピリオドを前のトークンとマージする。たとえば、
"Mr"と"."というトークンをマージして"Mr."というトークンにします。ドイツ語のテキストの場合、複数のトークンにまたがる略語をマージする。たとえば、
"z"、"."、"B"、および"."というトークンをマージして、"z. B."という単一のトークンにします。連続するピリオドをマージして省略記号にする。たとえば、
"."の 3 つのインスタンスをマージして、"..."という単一のトークンにします。
'none'– 文書を再トークン化しません。
文検出のための略語のリスト。string 配列、文字ベクトル、文字ベクトルの cell 配列、または table として指定します。
入力文書に文の詳細が含まれていない場合、この関数はまず addSentenceDetails 関数を実行し、'Abbreviations' で指定された略語リストを指定します。文検出に関するその他のオプション (文頭語句など) を指定するには、addPartOfSpeechDetails の詳細を使用する前に addSentenceDetails 関数を使用します。
Abbreviations が string 配列、文字ベクトル、または文字ベクトルの cell 配列である場合、この関数はこれらを通常の略語として扱います。次の単語が大文字で始まる場合、この関数は末尾のピリオドで区切ります。この関数は、略語の大文字小文字の違いを無視します。文頭語句は、Starters という名前と値のペアを使用して指定します。
文を略語で分割する際の動作を個別に指定するには、Abbreviations を table として指定します。table には、Abbreviation と Usage という名前の変数が必要です。ここで、Abbreviation には略語を指定し、Usage には各略語のタイプを指定します。次の表では、Usage が取りうる値と、これらのタイプの略語が渡された際の関数の動作について説明しています。
| Usage | 動作 | 略語の例 | テキストの例 | 検出される文 |
|---|---|---|---|---|
regular | 次の単語が大文字で始まる場合、末尾のピリオドで区切る。それ以外の場合、末尾のピリオドで区切らない。 | "appt." | "Book an appt. We'll meet then." |
|
"Book an appt. today." | "Book an appt. today." | |||
inner | 末尾のピリオドの後で区切らない。 | "Dr." | "Dr. Smith." | "Dr. Smith." |
reference | 次のトークンが数字でない場合、末尾のピリオドで区切る。次のトークンが数字だった場合、末尾のピリオドで区切らない。 | "fig." | "See fig. 3." | "See fig. 3." |
"Try a fig. They are nice." |
| |||
unit | 前の単語が数字で、次の単語が大文字で始まる場合、末尾のピリオドで区切る。 | "in." | "The height is 30 in. The width is 10 in." |
|
| 前の単語が数字で、次の単語が大文字でない場合、末尾のピリオドで区切らない。 | "The item is 10 in. wide." | "The item is 10 in. wide." | ||
| 前の単語が数字でない場合、末尾のピリオドで区切る。 | "Come in. Sit down." |
|
既定値は、abbreviations 関数の出力です。日本語と韓国語のテキストでは、略語は通常、文の検出に影響を与えません。
ヒント
既定では、この関数は "V." のなどの 1 文字の略語、または "U.S.A." のような 1 文字とピリオドが混在するトークンを通常の略語として扱います。これらの略語を Abbreviations に含める必要はありません。
データ型: char | string | table | cell
以前に計算された詳細を破棄し、再計算するためのオプション。true または false として指定します。
データ型: logical
出力引数
更新された文書。tokenizedDocument 配列として返されます。updatedDocuments からトークンの詳細を取得するには、tokenDetails を使用します。
詳細
addPartOfSpeechDetails 関数は、tokenDetails 関数によって返される table に品詞タグを追加します。この関数は、次のいずれかのクラス名をもつカテゴリカル タグで各トークンにタグを付けます。
adjective— 形容詞adposition— 接置詞adverb— 副詞auxiliary-verb— 助動詞coord-conjunction— 等位接続詞determiner— 限定詞interjection— 間投詞noun— 名詞numeral— 数詞particle— 不変化詞pronoun— 代名詞proper-noun— 固有名詞punctuation— 句読点subord-conjunction— 従属接続詞symbol— 記号verb— 動詞other— その他
アルゴリズム
入力文書に文の詳細が含まれていない場合、この関数はまず addSentenceDetails を実行します。
バージョン履歴
R2018b で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)