問題タブ [n-gram]
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.
autocomplete - シングルと termvector コンポーネントによるオートコンプリート
Google のような自動補完を実現する方法の 1 つは、Solr 1.4 でシングルと termvector コンポーネントを組み合わせることです。
最初に、シングルス コンポーネントを使用してすべての n-gram 分布を生成し、termvector を使用して、ユーザーの用語のシーケンスに最も近い予測を取得します (ドキュメントの頻度に基づく)。
スキーマ:
Solr 構成:
上記のセットアップでは、ストップワードを n グラムの端のどこかにドロップし、n グラム シーケンス内に保持する必要があります。
「インドと中国」のシーケンスから、次のシーケンスが必要だとしましょう。
残りをスキップします。
他の Solr コンポーネント/フィルターと組み合わせて実行できますか?
UPD: Lucene 4 で考えられる解決策の 1 つを次に示します (SOLR に接続できるはずです)。
「開始時(最初のトークンが表示される)または入力の終了時(後に非ストップワード トークンが表示されない)でストップ ワードのみを削除するカスタム ストップ フィルタを作成できませんか?バッファリング / 状態保持が必要でした。 (capture/restoreteState) でも実行可能に見えますか?」-- マイケル・マッカンドレス
から: http://blog.mikemccandless.com/2013/08/suggeststopfilter-carefully-removes.html
php - テキストのブロックで最も使用されている 2 つの単語の組み合わせを見つけるにはどうすればよいですか?
連続して使用した最も一般的な 2 つの単語をテキスト ブロックから特定するにはどうすればよいですか? 言い換えれば、テキストをコピーして貼り付けることができるオンラインまたはオフラインのツール (またはコード) があり、次のような最もよく使用される 2 つの単語の頻度を出力します。
最も使用されているものから最も使用されていないものへ:
「猫」 2.9% 「彼女が言った」 1.8% 「行った」 1.2%
ありがとう
n-gram - ElasticSearchn-gramtokenfilterが部分的な単語を見つけられない
私は自分の新しいプロジェクトのためにElasticSearchで遊んでいます。ngramtokenfilterを使用するようにデフォルトのアナライザーを設定しました。これは私のelasticsearch.ymlファイルです:
新しいインデックスを作成し、それに次のドキュメントを追加しました。
ただし、クエリtext:hree
やtext:ive
その他の部分的な用語を使用して検索すると、ElasticSearchはこのドキュメントを返しません。正確な用語(のように)を検索した場合にのみドキュメントが返されますtext:two
。
また、default_searchもngramトークンフィルターを使用するように構成ファイルを変更しようとしましたが、結果は同じでした。ここで何が間違っているので、どうすれば修正できますか?
java - Javaで非常に短時間で非常に大きなARPAファイルを検索します
ほぼ 1 GB の ARPA ファイルがあります。1分以内に検索する必要があります。私はたくさん検索しましたが、適切な答えはまだ見つかりません。ファイル全体を読む必要はないと思います。ファイル内の特定の行にジャンプして、その行全体を読み取るだけです。ARPA ファイルの行の長さが同じではありません。ARPA ファイルには特定の形式があることに言及する必要があります。
ファイル形式
サンプル ファイルでわかるように、1 グラムが 19 行、2 グラムが 234 行、3 グラムが 1013 行あります。行の文字列部分をプログラムに渡し、文字列の左側と右側にある数字を取得します。入力文字列は、ファイルのどの部分を検索する必要があるかを知るのに役立ちます。ファイルが非常に大きく、ファイル全体を読み取るには時間がかかるため、ファイルを完全に読み取らない方法を見つける必要があります。インデックスファイルを使わずにファイル内の特定の行にジャンプして行全体にアクセスするのは良い方法だと思います。
あなたが私の任務を遂行するのを手伝ってくれるなら、それは素晴らしいことです。
speech-recognition - Sphinx 4 は ARPA LM を破損しましたか?
SPHINX を実行すると、 kylmによって生成された ARPA LM があり、次の例外スタック トレースが表示されます。
ARPA LM の抜粋を次に示します。
PS :後に改行があります\end\
例外は、SPHINX が最後の行で予期しない EOF に遭遇していることを示しています (そこで EOF に遭遇するはずではありませんか??)
助けてください!
python - Pythonでのn-gramのポイントごとの相互情報(PMI)スコアの計算
私はn-gramの大きなコーパスといくつかの外部n-gramを持っています。このコーパス(カウント)に基づいて、各外部n-gramのPMIスコアを計算したいと思います。
これを行うためのツールはありますか、または誰かがこれを行うことができるPythonのコードを私に提供できますか?
問題は、私のnグラムが2グラム、3グラム、4グラム、および5グラムであるということです。したがって、3グラム以上の確率の計算には本当に時間がかかります。
speech-recognition - 50,000 ワードの ARPA 言語モデル ファイルの作成
50,000 語近くの ARPA 言語モデル ファイルを作成したいと考えています。テキスト ファイルを CMU 言語ツールに渡して言語モデルを生成できません。これらの多くの単語の言語モデルを取得できる他のリンクはありますか?
nlp - ウィクショナリーから多言語単語リストをダウンロードする場所は?
ウィクショナリーから多言語の単語リストをダウンロードする場所があるかどうか疑問に思っていましたか?
java - Java ハッシュマップを使用した n-gram モデリング
n グラム (n 単語のシーケンス) とそのコンテキスト (頻度と共に n グラムの近くに現れる単語) のコレクションをモデル化する必要があります。私の考えはこれでした:
次に、すべての異なる n-gram をカウントするために、次のような別の Hashmap を使用します。
テキストを受け取りながら追加します。問題は、n-gram の数が 10,000 程度を超えると、JVM ヒープがいっぱいになり (最大 1.5GB に設定されている)、すべてが非常に遅くなることです。
そのようなメモリ消費を避けるために、これを行うためのより良い方法はありますか? また、コンテキストはn-gram間で簡単に比較できるはずですが、私のソリューションではそれが可能かどうかはわかりません.