1

ユーザーが提供したテキストを取得し、テキスト内で言及されている地図上の住所を特定する方法を見つけたいと思います。無料の Web サービスがあれば喜んで使用します。または、リソースをあまり消費しないスクリプトを使用します。

これを行う方法の 1 つは、アドレス指定の膨大なデータベースを使用して、テキスト内の各アドレスを個別に検索することですが、これは効率的ではないようです。提案できるより良いアルゴリズムまたは手法はありますか?

私の基本的なアイデアは、位置情報を取得して、Google マップ上のマーカーに変えることです。場所を自動的に決定するのが難しすぎたり、CPU を集中的に使用したりする場合は、必要に応じて場所フィールドに情報を追加するようにユーザーに要求することもできますが、一部のユーザーは非常に若い学生になるため、これを行いたくありません。

これは、学校がホストするサーバーで使用できるスクリプト言語であるため、PHP で行う必要があります。

このセットアップ全体が Drupal ノードのコンテキスト内で行われることに注意してください。フィルターを使用して個々のノードから必要な位置情報を収集する予定であるため、この解析は一度だけ行われます (新しいテキストがデータベースに入るとき)。 .

4

3 に答える 3

2

opencalaisのようなものをテキストにタグ付けすることができます。返されるカテゴリの 1 つは「都市」で、別のサードパーティ モジュールを使用して都市の場所を表示できます。

于 2009-11-03T06:28:31.867 に答える
1

リレーショナル データベースに巨大な場所のリストがあり、500 から 1000 語だけを気にする場合は、SQL コマンドを渡すだけで 500 から 1000 語の一致を見つけることができ、非常に効率的です。 .

しかし、遅い API を呼び出さなければならなかったとしても、500 単語を 1 つずつ要求することは十分可能です。一致のキャッシュを保持している場合、キャッシュはおそらくすべてのストップワード (「the」、「if」、「and」など) ですぐにいっぱいになり、キャッシュを使用すると、おそらく毎回 500 語よりはるかに少ない単語を検索することになります。

ブルートフォースアプローチがどれほど速く機能するかに驚くかもしれません。

于 2009-11-03T04:24:24.583 に答える
0

今後の参考のために、Placemakerと呼ばれるYahoo APIと、その上に構築されたサービスGeoMakerについて説明します。

これらのツールを使用して、ここで要求されたテキストから場所を解析できます。残念ながら、現在Drupalモジュールは存在しないようですが、カスタムソリューションは簡単にコーディングできるようです。

于 2009-11-03T08:24:02.990 に答える