問題タブ [ws4j]
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.
java - Java ws4j ライブラリのドキュメント
私は Java を使用した剽窃検出に関するプロジェクトを書いています。この場合、最初のステップとして、次のタスクを実行する必要があります。
入力ファイル (txt、.pdf、.doc)
ファイルの内容をテキストに変換する
ストップ ワードを削除して n-gram にトークン化する
テキストに対するテキスト類似性アルゴリズムの処理
盗作検出兆候の報告
私は自分でコーディングしてこれらの手順を実行しましたが、今では多くのパフォーマンスが不足していると感じているので、自分の仕事に利用可能な API を使い始めました。利用可能なドキュメントまたはヘルプはありますか? 再利用できませんでした。それはまさに私が欲しいものです、デモを見てください
java - Senserelate targetword: エンドユーザーに「最良の」代替手段を提供する
私の問題の紹介: ユーザーは用語を検索でき、RitaWordNet は getSenseIds() というメソッドを提供して関連する意味を取得します。今では、距離を定義するさまざまなアルゴリズムを持つWS4J (Java の WordNet 類似性、http://code.google.com/p/ws4j/ ) を使用しています。「ユーザー」を検索すると、次の結果が得られます。
- ユーザー
- 搾取者
- 薬物使用者
Lin-distance は、WS4J の 2 つの用語を比較することによって測定されます (targetWord と仮定しますか?)。
- 類似度: user と: user = 1.7976931348623157E308
- 類似度: ユーザーと: 利用者 = 0.1976958835785797
「ユーザー」の意味が最も適切で正しい答えであるという提案をエンドユーザーに返したいと思いますが、問題は、これが文の残りの部分に依存することです。
例: 「老人は公共交通機関の常用者だった」、「若者は NLP を勉強している間に薬物使用者になった..」.
senserelate プロジェクトには、私が見逃しているものが含まれていると思います。このスレッドも私の検索中に取り上げられました: word disambiguation algorithm (Lesk アルゴリズム)
うまくいけば、誰かが私の質問を受け取りました:)
java - ws4j オンライン デモの値とソース コードのデモの値、特に lesk の値が異なるのはなぜですか?
Lesk を使用して、2 つの単語 (「家」と「家」など) の類似性を見つけようとしています。
ここで与えられた lesk 値を見つけるためのデモ コードを実行しました。また、ここでオンライン ws4j デモを使用して値を見つけました。
どちらも異なる値を与えます。
WS4Jで指定されたデモコードを実行することによる値:
WUPALMER = 0.4
JIANGCONRATH = 0.08467941109843881
LEACOCKCHODOROW
= 1.1349799328389845 LIN
=
0.16528546101187536
Resnik =
0.1692001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111116
オンラインデモによる値:
wup( home#n#8 , house#n#10 ) = 1.0000
jcn( home#n#8 , house#n#10 ) = 12876699.5
lch( home#n#8 , house#n#10 ) = 3.6889
lin( home#n#8 , house#n#10 ) = 1.0000
res( home#v#1 , house#v#2 ) = 9.0735
path( home#n#8 , house#n#10 ) = 1.0000
lesk( home#n#8 , house#n#10 ) = 1571
hso( home#n#8 , house#n#10 ) = 16
両方とも同じ ws4j を使用しているのに、これら 2 つの間に大きな違いがあるのはなぜですか?? デモコードに問題はありますか??
java - Wordnet ws4jはlesk値を交絡させ、すべてのsynsetを繰り返します
これはまったく正常なことかもしれませんが、私は Java 用の ws4j を持っており、2 つの単語の間のレスク メジャーとして "1.7345..." のような数値が得られるようです (デモ コードを使用すると) が、デモ Web サイトhttp:/ /ws4jdemo.appspot.com/?mode=w&s1=&w1=解決&s2=&w2=決定
Lesk メジャーは "57" のような整数です。この理由を見つけることができないようですが、プログラミング全般も初めてです。
word1 を取り込んで残りの単語を反復処理し、Lesk の測定値 (word1 と比較した場合) が特定の値を超えている単語のみを返すものを書きたかったのです。これにより、関連する質問が表示されます.Pythonでは、すべてのsynsetを反復処理できます
しかし、ws4j で同じことを行う方法がわかりません。
java - WS4J を使用した文の類似性
ws4j を使用して、2 つの文の類似度を計算したいと考えています。WS4Jのオンライン デモ @ WS4J Online demoを使用しています。
WS4J が提供するデフォルトの例文を使用しています。文を入力して類似度の計算ボタンを押すと、次の出力が得られます。
ここでは、文の個々のトークン間の類似性を取得しています。
ここからさらに先に進むにはどうすればよいですか。これらの 2 つの文の類似性を示す単一の値 (0.5 または 0.8 など) を取得したいと考えています。
ここから先に進む標準的な方法はありますか、それとも独自のアルゴリズムを作成する必要がありますか?