問題タブ [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.

0 投票する
2 に答える
9936 参照

php - Nグラム:説明+2つのアプリケーション

n-gramを使用して(できればPHPで)いくつかのアプリケーションを実装したいと思います。


ほとんどの目的に適したn-gramのタイプはどれですか?単語レベルまたは文字レベルのn-gram?PHPでn-gram-tokenizerをどのように実装できますか?


まず、N-gramとは何かを知りたいです。これは正しいです?それは私がn-gramを理解する方法です:

文:「私はニューヨークに住んでいます。」

単語レベルのバイグラム(nの場合は2):「#I」、「I live」、「live in」、「in NY」、「NY#」

文字レベルのバイグラム(nの場合は2): "#I"、 "I#"、 "#l"、 "li"、 "iv"、 "ve"、 "e#"、 "#i"、 "in"、 " n# "、"#N "、" NY "、" Y# "

このn-gram-partsの配列がある場合、重複するものを削除し、各部分に頻度を与えるカウンターを追加します。

単語レベルのバイグラム:[1、1、1、1、1]

文字レベルのバイグラム:[2、1、1、...]

これは正しいです?


さらに、n-gramで何ができるかについてもっと知りたいと思います。

  • n-gramを使用してテキストの言語を識別するにはどうすればよいですか?
  • バイリンガルコーパスがなくても、n-gramを使って機械翻訳を行うことはできますか?
  • スパムフィルター(スパム、ハム)を作成するにはどうすればよいですか?n-gramをベイジアンフィルターと組み合わせますか?
  • トピックスポッティングを行うにはどうすればよいですか?例:バスケットボールや犬に関するテキストですか?私のアプローチ(「犬」と「バスケットボール」に関するウィキペディアの記事で次のことを行います):両方のドキュメントのn-gramベクトルを作成し、それらを正規化し、マンハッタン/ユークリッド距離を計算します。結果が1に近いほど、結果は高くなります。類似性

私のアプリケーションアプローチ、特に最後のアプローチについてどう思いますか?


あなたが私を助けてくれることを願っています。前もって感謝します!

0 投票する
3 に答える
487 参照

text-processing - Google ブックスの人気のパッセージ機能はどのように開発されましたか?

Google が人気のパッセージ ブロック機能をどのように作成したかについて、誰かが理解しているか、知っているか、または包括的な文献やソース コードを教えてくれるかどうか知りたいです。ただし、同じことができる他のアプリケーションを知っている場合は、回答も投稿してください。

私が何について書いているのかわからない場合は、人気のあるパッセージの例へのリンクを参照してください。書籍 Modeling the legal decision process for information technology applications ... の概要を見ると、Georgios N. Yannopoulos によって次のように表示されます。

人気のパッセージ

...方向、不定。想定外のケースが発生したときに提起される問題については、予期していなかったため、解決していません。公園のある程度の平和が、これらのものを使用することに喜びや興味を持っている子供たちのために犠牲にされるか、それから守られるべきか. 想定外の事態が発生した場合、私たちは問題に直面し、競合する利益の中から最も満足できる方法を選択することで問題を解決することができます. 実行中...ページ86

1968年から2003年までの15冊の本に登場

これは、「機械的」法学に適した世界です。明らかに、この世界は私たちの世界ではありません。人間の立法者は、将来もたらされる可能性のある状況のすべての可能な組み合わせについて、そのような知識を持つことはできません。この予測不可能性は、目標の相対的な不確定性をもたらします。一般的な行動規則 (例えば、公園に車両を持ち込んではならないという規則) を大胆に構築するとき、この文脈で使用される言語は、すべてが満たさなければならない必要条件を修正します... 86 ページ

1968年から2000年にかけて8冊の本に登場

もっと

集中的なパターン マッチング プロセスである必要があります。n-gram モデル、テキスト コーパス、剽窃の自動検出しか思い浮かびません。しかし、n-gram はシーケンス内の次の項目を予測するための確率モデルであり、(私の知る限り) テキスト コーパスは手動で作成されます。そして、この特定の場合、人気のある文章では、大量の単語が存在する可能性があります.

私は本当に迷っています。そのような機能を作成したい場合、どのように、またはどこから始めればよいですか? また、この内容に最適なプログラミング言語を回答に含めてください: F# またはその他の関数型言語、PERL、Python、Java... (私自身が F# ファンになりつつあります)

PS: 誰かが自動剽窃検出タグを含めてくれませんか?

0 投票する
2 に答える
2806 参照

matlab - MATLABでスペクトルカーネル関数を実装する方法は?

スペクトルカーネル関数は、2つの文字列の間の同じn-gramをカウントすることにより、文字列を操作します。たとえば、「tool」には3つの2グラム(「to」、「oo」、および「ol」)があり、「tool」と「fool」の類似性は2です(「oo」と「ol」は共通です) )。

このメトリックを計算できるMATLAB関数を作成するにはどうすればよいですか?

0 投票する
3 に答える
394 参照

n-gram - nグラムモデルで経験的に発見されたnの最良の値は?

スペルチェッカーのバリエーションを実装しています。(時間効率を改善するために)さまざまなルートをたどった後、n-gramモデルを使用するコンポーネントを試してみる予定です。したがって、基本的には、さらに処理する可能性のある候補のリストを切り詰めたいと考えています。n の 1 つの値 (たとえば 2) を使用する方が他の値 (たとえば 3) よりも優れているかどうか、たまたま知っていますか?

0 投票する
3 に答える
2133 参照

ruby-on-rails - 必要な推奨事項: Rails、Postgres、ファジー全文検索

Postgres バックエンドを備えた Rails アプリがあります。

レーベンシュタイン距離または他の同様のメトリックに基づくあいまい検索を可能にする全文検索を追加する必要があります。lexer/stemmer は英語以外の単語を処理する必要があるという事実を追加します (英語のエンジンによって無関係と見なされる意味のある単語を含む可能性のあるターゲット言語を台無しにしないために、字句解析時に言語依存の機能をオフにするだけで問題ありません)。 )。

Postgres の tsearch にはあいまい検索がないため、ここでは適用されないと思います。間違っている場合は修正してください。

バックエンドとプラグインの可能な組み合わせは何ですか? インフラストラクチャへの追加が少ないソリューションを優先したいと考えています (たとえば、Postgres がファジー ft を持つことができる場合、外部の Lucene を使用する理由)。OTOH、関連する Rails プラグインの品質も重要です。

あなたは何をお勧めします?

更新:レーベンシュタインよりもむしろn-gramベースのメトリックが必要なようです。

0 投票する
2 に答える
1348 参照

algorithm - 確率遷移行列

私はマルコフ連鎖に取り組んでおり、入力としてテキストファイルが与えられた場合に、確率的遷移行列(n次)を構築するための効率的なアルゴリズムについて知りたいと思います。

私は1つのアルゴリズムを求めているわけではありませんが、そのようなアルゴリズムのリストを作成したいと思います。用語などのヒントと同様に、このようなアルゴリズムに関する論文も大歓迎です。このトピックは、n-gram識別アルゴリズムと非常によく似ていることに注意してください。

どんな助けでも大歓迎です。

0 投票する
5 に答える
46945 参照

python - PythonでのN-Gram、tf-idf、Cosineの類似性の簡単な実装

DBに保存されているドキュメントを比較し、0と1の間の類似度スコアを考え出す必要があります。

私が使用する必要がある方法は非常に単純でなければなりません。tf-idfとCosineの類似性の単純な実装とともに、バニラバージョンのn-gram(使用するグラム数を定義できる場合)を実装します。

これを実行できるプログラムはありますか?それとも、これを最初から書き始める必要がありますか?

0 投票する
2 に答える
3789 参照

vb.net - vb.net の N-gram 関数 -> 文字の代わりに単語のグラムを作成

私は最近、n-gram と、テキスト本文内のフレーズの頻度を n-gram と比較する素晴らしい可能性について知りました。現在、テキスト本文を取得し、最も頻繁に使用されるフレーズのリストを返す vb.net アプリを作成しようとしています (n >= 2)。

テキスト本文から n-gram を生成する方法の C# の例を見つけたので、コードを VB に変換することから始めました。問題は、このコードでは単語ごとに 1 グラムではなく、文字ごとに 1 グラムが作成されることです。単語に使用したい区切り文字は、VbCrLf (改行)、vbTab (タブ)、および次の文字です: !@#$%^&*()_+-={}|\:\"'?¿ /.,<>'¡º×÷';«»[]

この目的のために次の関数を書き直す方法を知っている人はいますか?

0 投票する
4 に答える
2459 参照

algorithm - 辞書/テーブルではなく統計に基づく「アナグラムソルバー」?

私の問題は、概念的にはアナグラムを解くのと似ていますが、辞書検索だけを使用することはできません。本当の言葉ではなく、もっともらしい言葉を見つけようとしています。

一連のテキストの文字に基づいて N-gram モデル (今のところ、N=2) を作成しました。ここで、文字のランダムなシーケンスが与えられたので、遷移確率に従って、それらを最も可能性の高いシーケンスに並べ替えたいと思います。これを始めたときは、ビタビ アルゴリズムが必要だと思っていましたが、詳しく調べてみると、ビタビ アルゴリズムは、観測された出力に基づいて一連の隠れ確率変数を最適化します。出力シーケンスを最適化しようとしています。

これについて読むことができるよく知られたアルゴリズムはありますか? それとも、Viterbi で正しい方向に進んでいるのに、それを適用する方法がわかりませんか?

アップデート

この問題についてより多くの洞察を求めるために報奨金を追加しました。(効率的なアプローチが不可能な理由を説明する分析、シミュレーテッド アニーリング以外のヒューリスティック/近似など)

0 投票する
4 に答える
4915 参照

search - Drupal の検索モジュールは部分文字列を検索できますか? (部分検索)

Drupal のコア検索モジュールは、「sandwich」などのキーワードのみを検索します。「sandw」などの部分文字列で検索して、サンドイッチの結果を返すことはできますか?

多分それを行うプラグインがありますか?