2011-03-28 42 views
5

Python: Clustering Công cụ Tìm kiếm Từ khóaPython: Clustering Công cụ Tìm kiếm Từ khóa

Hi, Tôi có một CSV, lên đến 20.000 hàng (Tôi đã có 100.000 cho các trang web khác nhau), mỗi hàng có chứa một từ khóa giới thiệu (tức một từ khóa ai đó đã nhập vào công cụ tìm kiếm để tìm trang web được đề cập) và một số lượt truy cập.

Những gì tôi đang tìm kiếm là cụm các từ khóa này thành các cụm "ý nghĩa tương tự" và tạo phân cấp các cụm (được cấu trúc theo thứ tự tổng số tìm kiếm trên mỗi cụm).

Một ví dụ cụm - "womens quần áo" - lý tưởng sẽ chứa các từ khóa cùng những dòng này: womens quần áo, 1000 phụ nữ mặc, 300 womens quần áo, 50 phụ nữ quần áo, 6 ​​ womens mặc, 2

Tôi có thể tìm cách sử dụng một cái gì đó giống như Bộ công cụ ngôn ngữ tự nhiên Python: http://www.nltk.org/ và WordNet, nhưng tôi đoán rằng đối với một số trang web, từ khóa giới thiệu sẽ là các từ/cụm từ mà WordNet không biết gì cả. Ví dụ, nếu trang web là một trang web nổi tiếng, WordNet khó có thể biết gì về "Lady Gaga", tình hình tồi tệ hơn nếu trang web là một trang web tin tức.

Vì vậy, tôi cũng đoán do đó giải pháp phải là giải pháp có vẻ chỉ sử dụng dữ liệu nguồn.

Truy vấn của tôi rất giống với truy vấn được nêu tại How to cluster search engine keywords?, chỉ tôi đang tìm nơi nào đó để bắt đầu nhưng sử dụng Python thay vì Java.

Tôi cũng tự hỏi liệu Google Predict và/hoặc Google Refine có thể sử dụng được hay không.

Dù sao, bất kỳ suy nghĩ/ý kiến ​​hoan nghênh nhất,

Cảm ơn, C

+0

Không thể giúp đỡ, nhưng rao bán riêng [câu trả lời cho một câu hỏi liên quan] của tôi (http://stackoverflow.com/questions/4787984/i-want-to-get-related-searches-or-keywords). – 9000

Trả lời

0

Vâng tôi là một Noob myself..But Tôi nghĩ rằng con đường để đi về nó được NLTK và WordNet. (Như bạn đã nói)

Đầu tiên loại bỏ tất cả những con số và ký tự đặc biệt (về cơ bản dọn dẹp từ khóa)

Kiểm tra cho trận chuỗi cơ bản/chuỗi phù hợp

Thẻ POS thẻ, (dùng trình gắn thẻ mặc định làm danh từ) Nếu không phải là danh từ, hãy sử dụng wordnet để nhận tất cả các từ đồng nghĩa và từ trái nghĩa của chúng và khớp với chúng. Nếu một Danh từ của nó sau đó sử dụng một số kỹ thuật cơ bản như một lowest common substring match hay lavenshtein khoảng cách, B/K Tree, vv

Bạn có thể tổ các cấp theo nhu cầu của bạn dương tính giả/Phủ định

Đối với trình độ cao phân cụm, bạn có thể sử dụng mô-đun học máy Python (như PyML, Reverend, v.v.) và sử dụng dữ liệu đã cho để đào tạo ... như google's ngram data on LDC

+0

Hi Rafi, Cảm ơn bạn đã trả lời, không hoàn toàn chắc chắn tôi hoàn toàn hiểu câu trả lời của bạn. Tuy nhiên, một câu hỏi - cách tiếp cận như vậy sẽ đối phó với những từ và cụm từ "mới" chưa có trong WordNet như thế nào? – user679134

+0

Hey @ user679134..Well cho các từ hoặc cụm từ mới, bạn có thể sử dụng các kỹ thuật cơ bản như một kết nối chuỗi con phổ biến thấp nhất, khoảng cách lavenshtein, B/K Tree vv .... Tôi nghĩ rằng đó là đủ tốt .. – Rafi

Các vấn đề liên quan