Text Analytics Toolboxで品詞でフィルタしたものを、Token化するにはどうしたら良いでしょうか?
1 view (last 30 days)
Show older comments
Takafumi Amano
on 7 Sep 2020
Commented: Takafumi Amano
on 8 Mar 2021
Text Analytics Toolboxを用いて、
に記載されているような、分類を実施しようとしていますが、
tokenizedDocument にてトークン化されたものを1トークン毎にtokenDetailsにて品詞分解し
特定の品詞のみにしたいのですが、TokenDetailsしたものをまたトークン化するやり方がわからず苦慮しております。
TokenDetailsで抽出したものを、TokenizedDocumentにて再びトークン化すると1Wordごとのトークンとなってしまい、
最初に文章をtokenizedDocumentにてトークン化した、.Vocabularyプロパティのstring配列にできません。
なにかいいやり方がありましたら御教授いただきたく、よろしくお願いいたします。
0 Comments
Accepted Answer
Misa Taguchi
on 26 Feb 2021
ご回答が遅くなり申し訳ございません。
論理演算およびjoin関数を用いた、以下のような処理ではご所望の内容になりますでしょうか?
%% 解析用データの読込み(「吾輩は猫である」を読み込んでいます)
url = "https://www.aozora.gr.jp/cards/000148/files/789_14547.html";
options = weboptions('CharacterEncoding','Shift_JIS');
code = webread(url,options);
textData = extractHTMLText(code);
textData = string(split(textData,newline));
idx = textData == "";
textData(idx) = [];
%% トークン化
documents = tokenizedDocument(textData);
%% 品詞情報の取得
tdetails = tokenDetails(documents);
head(tdetails)
%% 名詞の抽出
idx = tdetails.PartOfSpeech == "noun";
%% 再びトークン化
tokens = tdetails(idx,:);
for ii = 1:max(tokens.DocumentNumber)
try
str(ii,:) = join(tokens.Token(tokens.DocumentNumber == ii));
end
end
documents = tokenizedDocument(str)
documents.Vocabulary
More Answers (0)
See Also
Categories
Find more on Text Data Preparation in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!