StanfordNLP を使用して、スマートフォンで書かれた一連のメッセージをトークン化します。これらのテキストには多くのタイプミスがあり、句読点の規則が守られていません。多くの場合、空白が欠落してトークン化に影響します。
たとえば、次の文では、"California.This" と "university,founded" の空白が抜けています。
スタンフォード大学はカリフォルニア州にあります。この大学は 1891 年に設立された素晴らしい大学です。
トークナイザーは以下を返します。
{"Stanford", "University", "is", "located", "in", "California.This" , "university", "is", "a", "great", "university", "," 、「設立」、「」、「1891」、「。」}
観察されたように、彼らは "California.This" 以外のすべてのトークンを適切に分割しました (3 つのトークン {"California" "." "this"} があると予想しています)。トークン化ルールを調べたところ、単語の正規表現が単語の文末に使用される句読点を受け入れることがわかりました。
WORD = {文字}({文字}|{数字}) ([.!?]{文字}({文字}|{数字}) )*
最後の部分を削除して再コンパイルしましたが、トークナイザーはまだ動作を変更しません。
誰かがこの望ましくない動作を回避する方法を知っていますか? または誰か、このタイプのテキストでうまく機能する別のトークナイザーを教えてもらえますか?