1

基本的に-さまざまな用語の「近接度」を計算したいと思います。「近接」とは、具体的には、それらの間にあるスペース/文字/単語の数を意味します。

例:

用語=Word1/ Word2 Chunk = " blah Word1 blah blah blah blah blah Word2 blah "近接=Word1-Word2:5スクリプトは、2つの用語を確認し、それらを見つけて、それらの間にある単語に基づいて距離を確認します。

より高度なバージョンは、意味構造を調べ、用語が同じ意味要素、兄弟、または親などの中で発生するかどうかを識別することです。したがって、用語の近接検出は、同じ段落内、または連続する段落内で行うことができます。または同じ「親」(見出し)の下にありますが、それ以外の場合は分離します。

さらに-後日、単語の語幹/関係/響きのようなものを紹介することも役立つかもしれません。

私はネット(Google、ここ、phpフォーラム、phpスクリプトサイト)を見回しました。そのようなものを見ていません。私はいくつかのサイトで同様の(制限された)ツールを見ることができます-通常はSEOベースのツールです。これを「テキスト」全般に適用できるようにしたいと思います...アップロードされたword/txtファイルなどに適用する可能性があるためです。

私は実際の例を見ていません-それで私はそれをコーディングするのは些細なことよりもmroeであると推測することができるだけです。

問題は、どうすればこれを行うことができるかということです。単語の異形の順序(Word1 + Word2 / Word2 + Word1)をどのように処理しますか?同じ要素/構造の内部/外部の近接性の識別をどのように処理できますか?

誰かがいくつかの光を当てる/いくつかの提案をすることができることを願っています。

4

1 に答える 1

2

特定のテキストに対してこの種の検索を多数実行する必要がある場合は、単語、テキスト内でのその位置、および段落番号 (必要な場合) を含むデータベースにテキスト全体をインデックス化することから始めることができます。次に、Word1 と Word2 のすべての位置を選択できます。最小距離を推測するのはそれほど難しくありません。

編集: データベースを使用せずに、ワンショットの単純なアルゴリズムを試してみます。

  1. html と句読点を削除して、単語のみを保持します
  2. Word1 の最初の出現を検索します
  3. 次に Word2 が出現するまでの単語 (または文字、またはスペース) の数を数えます。
  4. Word2 に到達する前に Word1 に再度到達した場合は、カウンターを再起動します。
  5. 距離を記録し、引き続き手順 2 ~ 5 を繰り返して、Word1 と Word2 の他の出現箇所を取得します。
于 2011-04-07T13:55:40.113 に答える