問題タブ [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.
mahout - Apache mahout の nGrams
apache mahout を使用して単純ベイズ分類アルゴリズムを実行しています。アルゴリズムのインスタンスのトレーニングと実行中にグラム サイズを設定するオプションがあります。
n-Gram サイズを 1 から 2 に変更すると、結果の分類が大幅に変更されます。なぜこれが起こるのですか?n-Grams のサイズはどのように結果に劇的な変化をもたらしますか?
solr - Solr n-gram 以外の提案
Solr 3.5 を使用していますが、問題が発生しました。私がやりたいのは、file1 の各行を file2 にリストされている参照と比較することです。ただし、file1 では、データが正しく書き込まれているとは限りません。そこで、nGram を使用して 3 から 15 までの文字で単語を切り取ることにしました。問題は、単語を 3 で切り取ると、一致する参照が多すぎることです。しかし、15 カットすると一致しません :( この問題を解決するアイデアを持っている人はいますか ?
ありがとうございました!ボー
java - 文字列内のn-gramをより迅速に検出する方法は?
文字列内のn-gramを検出するSOでこのソリューションを見つけました:(ここでは:文からのN-gramの生成)
=>このコードのビットは、他の操作のミリ秒と比較して、はるかに長い処理時間(1グラム、2グラム、3グラム、および4グラムのコーパスの検出に28秒:4Mbの生のテキスト)を要します(ストップワードの削除など)
上に示したループソリューションよりも高速になるJavaのソリューションを知っている人はいますか?(マルチスレッド、コレクションの使用、または文字列を分割するための創造的な方法を考えていました...?)ありがとう!
text - Compressing text using recursive N-Grams
I was just kicking around the idea of breaking up a large group of text into a single integer by using recursive 2-Gram storage until there is only one value left.
#xA;For example, in the following code I have a 11 word sentence (twelve with the period). I could store each word pair in a database ("this" + "is" = ID #1) and then store each set of two wordpairs in the database (1 + 2 = ID #7), and repeat until I get down to only one word set left - which would be ID 12.
#xA;Then using the number "12" we can work backwards (if we have the same dataset)
#xA;While this would take a tremendous amount of work to compress/uncompress each string - it seems like it might have a use in some kind of archive work where the contents need to be stored - but are never read except in rare cases where the uncompression process isn't a problem.
Am I thinking about this correctly? Would the possible number of word sequences just be too great to store like this? (Imagine a 500 word document).
solr - Solr ngramは数字と一致しませんか?
標準の Solr ngram フィールド定義を使用しています -
"item:ipad AND item:2" は "iPad 2" を検索しますが、"item_ngram:ipad AND item_ngram:2" は検索しません。
何か案が?
java-me - Trie (三分探索木) の J2ME 実装
私は現在、予測テキスト SMS システムに取り組んでいます。TST データ構造とバイグラム (現在のキー シーケンス 12 キーパッドに基づいて次の可能性のある単語を予測する) を使用して実装したいと考えています。
現在、私はコーパスを持っており、利用可能なアプリケーションを使用して、辞書、バイグラム、および頻度を考え出しました。現在、次の質問を念頭に置いています。
- この場合、J2ME TST 実装または適切な Trie を見つけることができますか? (利用可能な TST トライに関するより詳細な説明は素晴らしいものになる可能性があります)
- このプロジェクト アプローチに関する一般的なガイダンス
NB:私は似たような Trie の実装を見てきましたが、まだ進むべき道を見つけることができません。
lucene - ElasticSearchを使用したファイル名検索
ElasticSearchを使用してファイル名(ファイルのコンテンツではない)を検索したい。したがって、ファイル名の一部を見つける必要があります(完全一致、あいまい検索なし)。
例:
次の名前のファイルがあります。
次に、最初の2つのファイルを取得するために検索し2012.01.13
ます。最後のファイル名を除くすべてのファイル名を
検索するfile
か、返す必要があります。ile
ElasticSearchでそれをどのように達成できますか?
これは私がテストしたものですが、常にゼロの結果を返します。
lucene - Lucene ライブラリを使用して n-gram を抽出するには?
Lucene ライブラリに頭を悩ませているところです。これは私がこれまでに持っているものです:
stream.incrementToken() で失敗します。私は、ShingleAnalyzerWrapper が別の Analyzer を使用してシングル アナライザー オブジェクトを作成することを理解しています。そこから、属性フィルターを使用して解析されるトークン ストリームに変換します。ただし、常に次の例外が発生します。
スレッド「メイン」の例外 java.lang.AbstractMethodError: org.apache.lucene.analysis.TokenStream.incrementToken()Z
考え?前もって感謝します!
python - 英語以外の言語 (CJK など) での n-gram 名分析
私は人々のデータベースの重複排除に取り組んでいます。最初のパスとして、文献に記載されているように、データベース全体で O(n^2) 操作を回避するために、基本的な 2 段階のプロセスに従っています。まず、データセット全体を「ブロック」し、名前に含まれる n グラムとイニシャルに基づいて各レコードをビンに入れます。次に、Jaro-Winkler を使用してビンごとのすべてのレコードを比較し、それらが同一人物である可能性を測定します。
私の問題-名前はUnicodeです。これらの名前の一部 (多くはありませんが) は CJK (中国語-日本語-韓国語) 言語です。これらの言語でイニシャルなどの単語の境界を見つける方法がわかりません。名前が 2 文字になる可能性がある言語の名前に対して n-gram 分析が有効かどうかはわかりません。また、このコンテキストで文字列編集距離または他の類似性メトリックが有効かどうかもわかりません。
言語学者のプログラマーやネイティブ スピーカーからのアイデアはありますか?
python - Python: 辞書のメモリ使用量を減らす
いくつかのファイルをメモリにロードしようとしています。ファイルには、次の 3 つの形式のいずれかがあります。
- 文字列 TAB int
- 文字列タブフロート
- int TAB フロート。
実際、これが解決に役立つ場合に備えて、それらは ngram 静的ファイルです。例えば:
現在、私が今やっている疑似コードは
驚いたことに、ディスク内のファイルの合計サイズは約 21 MB ですが、メモリにロードすると、プロセスは 120 ~ 180 MB のメモリを必要とします。(Python アプリケーション全体が他のデータをメモリにロードすることはありません)。
10 個未満のファイルがありますが、現在数百万行ある 1 つのファイルを除いて、それらのほとんどは約 50 ~ 80k 行で安定しています。
そこで、メモリ消費量を削減するためのテクニック/データ構造をお願いしたいと思います:
- 圧縮技術に関するアドバイスはありますか?
- まだ dict を使用している場合、メモリを減らす方法はありますか? Python dict の Java のように「負荷係数」を設定することは可能ですか?
- 他のデータ構造がある場合は、速度をいくらか犠牲にしてメモリを削減することもできます。それにもかかわらず、これは時間に敏感なアプリケーションであるため、ユーザーがクエリを入力すると、結果を返すのに数秒以上かかることはあまり合理的ではないと思います. これに関しては、Google が Google 翻訳を非常に高速に実行する方法に今でも驚いています。彼らは多くの技術と多くのサーバーの能力を使用しているに違いありません。
どうもありがとうございました。アドバイスをお待ちしております。