問題タブ [text-analysis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python Context Free Grammar と PCFG 生成のベンチマーク?
Python で一般的な CFG と PCFG に使用するさまざまな関数があることは知っています。ただし、それらはすべて速度が異なるようです。
例: NLTK、PyParsing。
速度とメモリ使用量に関連するさまざまな属性を比較する最近のベンチマークはありますか?
algorithm - 短い一連のテキストがランダムかどうかを確認することは可能ですか?
テキストの短いシーケンス (2 つまたは 3 つの単語など) がランダムかどうかを確認することは可能ですか? 最初に考えたのは、文字列のエントロピーを計算することでした。
の文字をどのように組み合わせて"hello world"
も同じエントロピーになりますが、のようなランダムな文字列が作成されます"llloo ehrdw"
。エントロピー ベースのメソッドは、テキストのような長い文字列でうまく機能します。ここでは、単一の文字を数えて、それが言語であることを判断することもできます。ここでZipfs法を使用して、実際の言語を確認することもできます...
次の方法は、通常の英語辞書のような一般的な単語のルックアップ テーブルです。この方法の問題点は、最初に単語のリストを作成することです。
例えば:
つまり、ここで単語を見つけて単語リストと比較することがすべてであり、これは非常に難しい場合があります.
これらすべての方法のもう 1 つの問題は、特定の言語のみを検出するか、特定の言語にトレーニングする必要があることです。今のところ英語のみを使用したいと考えてください。
これを行う良い方法はありますか、それとも偽陽性と偽陰性を受け入れる必要がありますか?
nlp - ステマーとレマタイザー
特に英語の自然言語処理 (NLP) は、「完全な」レンマタイザーが存在する場合、ステミングが古風なテクノロジになる段階に進化しました。これは、ステマーが単語/トークンの表面形状を無意味な語幹に変更するためです。
この場合も、「完全な」レンマタイザーの定義には疑問があります。NLP タスクが異なれば、異なるレベルのレンマタイゼーションが必要になるからです。たとえば、動詞/名詞/形容詞の形の間で単語を変換します。
ステマー
レマタイザー
問題は、今日、英語のステマーは役に立っているのかということです。英語の見出し語化ツールはたくさんあるので
nounify
そうでない場合、 、verbify
、adjectify
およびadverbify
前処理を行うことができる堅牢なレンマタイザーを構築するにはどうすればよいでしょうか?見出し語化タスクは、英語と同様の形態学的構造を持つ他の言語にどのように簡単にスケーリングできますか?
search - 近似一致による辞書ベースのテキスト分析
200 万を超える名前、フェーズ、場所などのデータベース/辞書があります。サンプル データは次のとおりです。
各エントリには、ID があります。
現在、ユーザーが私のウェブサイトにテキストを送信すると、テキストが分析され、テキスト内の名前、フェーズ、および場所のすべての外観が、ある程度の許容度 (近似一致) で検出されます。例えば:
- フェーズ「狂気: 同じことを何度も繰り返す」は、完全なフェーズ「狂気: 同じことを何度も繰り返し、異なる結果を期待する」と一致します。</li>
- フェーズ「狂気: 同じことを何度も繰り返し、異なる結果を期待する」は、完全なフェーズ「狂気: 同じことを何度も繰り返し、異なる結果を期待する」と一致します</li>
私のデータベースには 2 行以上の長さのフェーズがあるため、これが名前付きエンティティの問題であるかどうかはわかりません。また、正確な位相を見つけたいわけではありません。おおよその一致が必要です。
オープンソースのソリューションを探しています。前もって感謝します
java - Java 用のカスタムトークナイザー
電子メールを含むテキスト ファイルを処理する必要があるアプリケーションを開発しています。テキストからすべてのトークンが必要です。トークンの定義は次のとおりです。
- 英数字
- 大文字と小文字を区別する (大文字と小文字を区別する)
- 「!」および「$」は構成文字と見なされます。例:
FREE!!
,$50
はトークンです 「.」(ドット) と ',' コンマは、数字の間にある場合、構成文字と見なされます。例:
192.168.1.1、$24,500
トークンです。
等々..
私のニーズに合わせて簡単にカスタマイズできる、Java 用のオープンソースのトークナイザーをいくつか提案してください。StringTokenizer と正規表現を使用するだけで十分でしょうか? 停止も実行する必要があるため、停止やステミングなどの追加機能も実行するオープンソースのトークナイザーを探していました。
regex - 正規表現:テキストから頭字語とそれに対応する頭字語の定義を見つけて抽出する方法は?
この質問で提案されているようなことをしたいと思いますが、より一般的なレベルでは: 頭字語の正規表現
入力例:
「影響力のある一連の論文で、Feddersen と Pesendorfer (1996, 1999)、以下FPを組み込む ... は、今後SVCで「<strong>スイング有権者の呪い」とラベル付けされています。予測 ... 最良の方法Static Application Security Testing ( SAST ) ツールの使用を開始するには..ラテン語のante meridiem ( AM ) から来て、正午までに..."
結果:
- [「フェダーセンとペゼンドルファー」、「FP」]
- [「スイング有権者の呪い」、「SVC」]
- [「静的アプリケーション セキュリティ テスト」、「SAST」]
- ['アンテメリディエム'、'AM']
もちろん、頭字語には多くの「シグナル」が考えられます。以下にいくつかをリストしました。
- 括弧: ... (...)
- …これから…
- ... 今後 ...
- ... この後 ...
- ... と呼ばれる ...
- ...続いて...
- ...だから...
- ...これから...
- ... 以下〜とする ...
- 等
おそらく、2 つの正規表現を使用すると便利です。1 つは括弧用で、もう 1 つは他のすべてのものです。これは、構造がかなり異なるためです。
最初の文字の頭字語のみに焦点を当てています。SOUND Navigation And Raningから作成されたソナーなどのケースは無視します。
正規表現でそのような考えをすることは可能ですか?もしそうなら、どうしますか?