5

私は、英語かどうかに関係なく、何千ものウェブサイトをチェックできるボットを書いています。

各ウェブサイトの最初のページをクロールするために Scrapy (python 2.7 フレームワーク) を使用しています。

ウェブサイトの言語を確認する最良の方法を教えてください。

任意の助けをいただければ幸いです。

4

8 に答える 8

4

Python を使用しているため、NLTK を試すことができます。より正確には、NLTK.detect を確認できます

詳細と正確なコード スニペットはこちら: NLTK と言語検出

于 2012-07-16T15:21:26.567 に答える
2

応答ヘッダーを使用して、次のことを確認できます。

ウィキペディア

于 2012-07-16T15:18:53.577 に答える
2

Python を使用している場合は、Marco Lui と Tim Baldwin によって作成されたスタンドアロンのLangIDモジュールを強くお勧めします。モデルは事前にトレーニングされており、文字検出は非常に正確です。XML/HTML ドキュメントも処理できます。

于 2012-08-18T15:52:47.193 に答える
2

サイトが多言語の場合、"Accept-Language:en-US,en;q=0.8" ヘッダーを送信すると、応答が英語であることが期待できます。そうでない場合は、「response.headers」辞書を調べて、言語に関する情報が見つかるかどうかを確認できます。

それでもうまくいかない場合は、何らかの方法で IP を国にマッピングしてから、言語にマッピングしてみてください。最後のリソースとして、言語を検出してみてください (これがどれほど正確かはわかりません)。

于 2012-07-16T15:31:15.033 に答える
1

http://detectlanguage.comで言語検出 API を使用できます 。これは、GET または POST を介してテキスト文字列を受け取り、JSON 出力とスコアを提供します。無料サービスと有料サービスがあります。

于 2013-01-21T22:05:58.917 に答える
1

調べてくださいNatural Language Toolkit

NLTK : http://nltk.org/

あなたが調べたいのはcorpus、によって設定されたデフォルトの語彙を抽出するために使用することですNLTK

nltk.corpus.words.words()

次に、 を使用してテキストを上記と比較しますdifflib

参考http ://docs.python.org/library/difflib.html

これらのツールを使用して、テキストと NLTK によって定義された英単語との間に必要な違いを測定するためのスケールを作成できます。

于 2012-07-16T15:23:24.900 に答える
0

HTML Webサイトで英語以外の文字が使用されている場合は、メタタグのWebページのソースコードに記載されています。これは、ブラウザがページをレンダリングする方法を知るのに役立ちます。

これは、英語のページとアラビア語のページの両方があるアラビア語のWebサイトhttp://www.tanmia.aeの例です。

アラビア語ページのメタタグは次のとおりです。metahttp-equiv="X-UA-Compatible" content = "IE = edge

同じページですが、英語はmeta http-equiv = "Content-Type" content = "text / html; charset = UTF-8" /

英語の場合はボットにメタタグを調べさせ、それ以外の場合は無視しますか?

于 2012-07-16T15:44:10.303 に答える
0

Web ページの内容を信用したくないが、自分で確認したい場合は、統計アルゴリズムを使用して言語を検出できます。Trigram ベースのアルゴリズムは堅牢で、ほとんどが別の言語で書かれているが英語が少し含まれているページでもうまく機能するはずです (「the、and、またはwithという単語がページにあるかどうかを確認する」などのヒューリスティックをだますのに十分です) Google "ngram 言語分類」と、それがどのように行われたかについての多くの参考文献を見つけることができます.

英語用に独自のトライグラム テーブルをコンパイルするのは簡単ですが、Natural Language Toolkitにはいくつかの一般的な言語用のセットが付属しています。彼らはにいNLTK_DATA/corpora/langidます。nltk ライブラリ自体がなくても trigram データを使用できますが、nltk.util.trigramsモジュールを調べることもできます。

于 2012-07-18T20:35:22.760 に答える