日本語の認識のご相談

4 Ansichten (letzte 30 Tage)
Hiraku Tokuma
Hiraku Tokuma am 2 Okt. 2022
Bearbeitet: Hiraku Tokuma am 3 Okt. 2022
matlabで日本語を入力したものに対して
文節ごとに文字の順番を最初と最後だけ固定してランダムに動かすことは可能でしょうか。
アバウトな質問で恐縮ですが、どうぞよろしくお願いいたします。

Akzeptierte Antwort

Atsushi Ueno
Atsushi Ueno am 3 Okt. 2022
Bearbeitet: Atsushi Ueno am 3 Okt. 2022
上記ドキュメントを参考に2つのラッパー関数をダウンロードしてカレントフォルダに置き、下記コードを実行すると最後の結果が得られました。素晴らしい。
str = "matlabで日本語を入力したものに対してタイポグリセミア現象を起こすことは可能でしょうか。" + ...
"アバウトな質問で恐縮ですが、どうぞよろしくお願いいたします。";
documents = tokenizedDocumentJP(str); % 形態素解析
tkns = tokenDetailsJP(documents); % 形態素解析結果の抽出
idx = tkns.rubi ~= "*"; % "*"以外のrubiを使う。それ以外の句読点等はTokenを使う。
tkns.Token(idx) = tkns.rubi(idx);
for i = 1:size(tkns,1)-1
if tkns.PartOfSpeech(i) == "auxiliary-verb" % 助動詞は
tkns.Token(i+1) = tkns.Token(i) + tkns.Token(i+1); % 次の品詞にくっつける
end
end
tkns(tkns.PartOfSpeech == "auxiliary-verb",:) = []; % くっつけた助動詞を消す
for i = 1:size(tkns,1) % 各単語において最初と最後以外の文字をひっくり返していく
str = char(tkns.Token(i));
if length(str) <= 3
continue; % 単語が3文字以下なら何もしない
end
prt = str(2:end-1); % 単語の2文字目~最後から1文字前まで取り出す
tkns.Token(i) = string([str(1) prt(randperm(strlength(prt))) str(end)]); % ひっくり返してくっつける
end
strjoin(tkns.Token') % 表示してみる
ans = "maatlb デ ニンホゴ ヲ ニリウュョク シ タモノ ニシイタテ タポセイリミグア ゲションウ ヲ オコス コト ハ カノウ デショウカ 。 アウバト ナモシツン デ キョシウュク デスガ 、 ドウゾ ヨシロク オネガイ イマシタス。"

Weitere Antworten (0)

Kategorien

Mehr zu Text Analytics Toolbox finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!