問題タブ [sentence-similarity]
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.
cosine-similarity - word2vec、単語埋め込みの合計または平均?
word2vec を使用して、個々の単語の埋め込みを追加するか、単語の埋め込みの平均を計算することにより、小さなフレーズ (3 ~ 4 単語) を一意のベクトルとして表しています。
私が行った実験から、常に同じコサイン類似度が得られます。トレーニング後に word2vec によって生成された単語ベクトルが単位長 (ユークリッド ノルム) に正規化されていることに関係していると思われますか? または、コードにバグがあるか、何か不足しています。
コードは次のとおりです。
出力は次のとおりです。
コサイン類似性 (ウィキペディア)で定義されているコサイン類似性を使用しています。ノルムと内積の値は実際には異なります。
コサインが同じである理由を誰か説明できますか?
ありがとう、デビッド
mysql - MySQL VARCHAR 列の同様の値
レストラン名とその所在地の都市を格納するためのデータベース テーブルがあります。例:
名前 | 街
イレブン マディソン パーク | ニューヨーク市
グラマシー居酒屋 | ニューヨーク市
ロータス オブ サイアム | 写真 トーク
モダン | LA
ABC キッチン | LA
INSERT の前に着信エントリがある場合、同じ都市に類似のレストラン名がない場合は、先に進んで挿入を実行したいと考えています。
しかし、エントリが { name: "Eleven Madison", city: "NYC" } のようなものである場合、"name" 列で同じ都市の同様のエントリを見つけたいと考えています。この例では、"NYC の "eleven madison park" です。 「、挿入を実行して、「競合」テーブルに新しい行を保存したい-これらのレストランのID(最後の挿入IDと同様の行ID)
次の SQL クエリで、レーベンシュタイン距離アルゴリズムを使用しました。
次に、しきい値を 8 に設定し、levsh が 8 未満の場合は競合としてマークします。つまり、「競合」テーブルに新しいレコードを挿入します。このクエリは、テーブルが 1000 レコードになるまで正常に機能していました。このクエリが完了するまでに 2 秒かかります。
これは、市内のすべてのレストランの levenshtein_ratio を計算しているためであることを理解しています。「Eleven」、「Madison」、またはさらに良いものを含むものは、次のようなことができれば
このクエリを改善および最適化する方法についての提案を手伝ってください。可能であれば、私がやっていることに対するより良いアプローチがあれば教えてください。
ありがとう
python - 文の用語制約を測定する方法は?
私は、その単語が欠落している文がどれほど制約されているかに基づいて、文中の単語の有益性をアルゴリズムで計算する方法を見つけようとしています。たとえば、「キツネ」という単語が文で提供する情報量を計算するにはどうすればよいですか。
「素早い茶色の___がフェンスを飛び越えた」
つまり、ターゲット単語がない場合、ユーザーが空白を埋めるのがどれだけ難しいかをどのように計算できますか?
私はこれまで、ターゲット単語と周囲のすべての単語との合計 word2vec 意味的類似性を調べるアプローチを試みてきましたが、常にうまくいくとは限りません。これに関して行われた既存の作業はありますか?
php - preg_replace が同様のテキストを考慮
パターン内の同様のテキストを考慮して preg_replace を実行しようとしています。私の目標は、OCR ソフトウェアによって出力されたテキストから特定の文字列を削除することです (一部の文字は混乱する可能性があります)。
コード例を挙げましょう:
注意: OCR は 3 番目の文字 ac
を と混同しましたo
。
ここでは、OCR を改善することはオプションではなく、可能でもありません。
入力文字列:
Appartamento sito in Vioolo San Vincenzo, n.4 e censito al
上記の preg_replace の呼び出し後に期待される結果:
Appartamento sito in e censito al
実結果:
Appartamento sito in Vioolo San Vincenzo, n.4 e censito al
levenshtein()
テキストは、 ,のような PHP 関数の意味で類似していると見なす必要がありますsimilar_texts()
(私は考慮していないsoundex()
かmetaphone()
、テキストが英語ではないため)。
使用preg_replace
は必須ではありませんが、少なくともそのパターンと同等のものに対して文字列を評価する機能が必要です。
vector - Mahout - ベクトル間の余弦距離 > 1
DenseVectors として表されるベクトル間の距離を計算するために、Mahout の CosineDistanceMeasure クラスを使用しています。
ここで、いくつかのベクトルのカップルについて、メソッド distance() は 1 より大きい値を返しますが、余弦距離は 0 と 1 の間に含まれると考えられていました。
誰でもこの動作を説明できますか?
前もって感謝します!
r - R: Sentence to word-table の行番号が一致しません
私の以前の問題から、私はいくつかtexts
の異なる行にいくつかあり、テキストからword-table
各単語に対して生成しようとしています。ただし、テキスト列の行番号と、行番号がword-table
異なる場合に問題が発生しています。一部のテキストで検出され、2 つ以上の行が作成されています。最後に、cbind
これら2つを一緒にすることはできません。コードはこちら。結果が、どのテキストがどのテキストであるかを示すためにそれらをバインドできるテキストの行番号とまったく同じになることを望んでいますword-table
。
詳細: テキストに複数の空白またはタブが含まれていました。最初の想定では、追加のスペースが問題を引き起こしている可能性がありますが、追加の空白を削除した後でも、同じ問題が発生します。
助けてください
java - 単語の類似性から文全体の類似性への行き方
WS4J を使用して文の類似性メソッドを実装しました。
2つの文の単語の類似性に基づく記事の文の類似性について読んだことがあります。しかし、単語の類似度に基づいて文全体の類似度を計算して単一の値を返すメソッドは見つかりませんでした。
同様の質問が、この Web サイト ( sentence-similarity-using-ws4j)で行われました。
ご覧のとおり、WS4J を使用して、文内の任意の単語が他の文で synset 一致を検出する (一致する値が 0.9 を超える) 場合に、一致メッセージを返すまでコーディングすることができました。しかし、これは良いアプローチではないと思います。
Yuhua et al [2] の記事を見つけました。すべて非常に便利ですが、全体的な文の類似性に使用した方法を理解できません。
コードを Java で作成したので、Java の実装を探していました。
[2]: Li, Y., McLean, D., Bandar, ZA, O'shea, JD, & Crockett, K. (2006). セマンティック ネットとコーパス統計に基づく文の類似性。知識とデータ工学、IEEE トランザクション、18(8)、1138-1150。