2011-03-28 11 views
5

のPython:クラスタリング検索エンジンキーワードPythonの:クラスタリング検索エンジンキーワード

こんにちは、 私は、CSVを持っている(私は別のウェブサイトのため100,000持っていた)、参照キーワードを含む各列(すなわち2万行まで問題のウェブサイトを見つけるために検索エンジンに入力したキーワード)、および多数の訪問数を含む。

私が探しているのは、これらのキーワードを「類似の意味」のクラスターにクラスター化し、クラスターの階層を作成することです(クラスターごとの合計検索数の順に構造化されています)。

例クラスタ - "女性の服" - 理想的には、これらの線に沿ってのキーワードが含まれています: は服レディース、1000年 女性が着る、300 は、衣服、50人の 婦人服、6人の 女性が着るレディース2

私はPython Natural Language Toolkitのようなものを使うことができます:http://www.nltk.org/とWordNetですが、WordNetには何も知られていない言葉や言葉が参照されているウェブサイトがあります。たとえば、ウェブサイトが有名人のウェブサイトである場合、WordNetは「Lady Gaga」について何も知らない可能性があります。

したがって、ソリューションはソースデータそのものを使用するように見える必要があるとも推測しています。

私のクエリは、How to cluster search engine keywords?で生成されたものと非常に似ていますが、私はどこかで、Javaの代わりにPythonを使用しています。

Google PredictやGoogle Refineが何らかの用途に使用されているかどうかは疑問でした。とにかく

、任意の思考/提案を大歓迎、

おかげで、 C

+0

助けるが、[関連する質問に答え]自分を切り売りすることはできません(http://stackoverflow.com/questions/4787984/i-want-to-get-related-searches-or-keywords)。 – 9000

答えて

0

まあ、私はそれについて移動する方法はNLTKとWordNetのだと思いますmyself..Butのnoobだ。(あなたとすでに基本的な文字列の一致/部分文字列のための

チェックが

に一致する(基本的には、キーワードをクリーンアップ)

最初にすべての数字と特殊文字を削除します)と10

タグPOSタグ(デフォルトのタガーを名詞として使用) 名詞以外の場合は、wordnetを使用して同義語のすべての同義語と異名を取得し、一致させます。 その名詞が、その後lowest common substring matchまたはlavenshtein距離のようないくつかの基本的なテクニックを使用する場合は、B/Kツリーなど

あなたはハイレベルについては偽陽性/陰性の

のあなたの必要性に応じて巣のレベルをすることができますあなたはPythonのマシン学習モジュール(PyML、牧師のような)を使用して、既に与えられたデータを使用してトレーニングすることができますgoogle's ngram data on LDC

+0

こんにちはRafi、返信ありがとう、完全に私はあなたの答えを完全に理解していない。しかし、1つの質問 - WordNetにはまだない "新しい"単語やフレーズをどのように扱うのでしょうか? – user679134

+0

ちょっと@ user679134 ..新しい単語やフレーズのために、最も一般的な部分文字列一致、lavenshtein距離、B/Kツリーなどの基本的なテクニックを使うことができます。 – Rafi