2012-10-08 30 views
5

Tôi đang cố gắng xây dựng một hệ thống giới thiệu để giới thiệu các trang web cho người dùng dựa trên hành động của anh ấy (tìm kiếm google, nhấp chuột, anh ấy cũng có thể xếp hạng trang web một cách rõ ràng). Để có ý tưởng về cách tin tức của Google thực hiện, nó hiển thị các bài viết tin tức từ trang web về một chủ đề cụ thể. Về mặt kỹ thuật, đó là phân cụm, nhưng mục tiêu của tôi là tương tự. Nó sẽ là đề xuất dựa trên nội dung dựa trên hành động của người dùng.Hệ thống giới thiệu trang web

Vì vậy, câu hỏi của tôi là:

  1. Làm thế nào tôi có thể có thể ghé qua những internet để tìm liên quan web trang?
  2. Và thuật toán nào tôi nên sử dụng để trích xuất dữ liệu từ trang web là phân tích văn bản và tần suất từ ​​là cách duy nhất để làm điều đó?
  3. Cuối cùng nền tảng nào phù hợp nhất cho vấn đề này. Tôi đã nghe nói về mahout Apache và nó đi kèm với một số thuật toán có thể sử dụng lại, nó có âm thanh phù hợp không?
+2

Bạn có thể viết nhiều cuốn sách về câu hỏi của bạn. –

+0

haha, chúng có phải là vấn đề lớn không? Vâng, tôi đang tìm một giải pháp đơn giản. Chỉ là một mô tả ngắn gọn về cách tiếp cận một dự án như vậy. –

+1

[Lập trình tập thể dục thông minh] (http://shop.oreilly.com/product/9780596529321.do) là một cách dễ dàng, toán học ít giới thiệu về máy học và chứa một trường hợp sử dụng như câu hỏi của bạn. – Maurits

Trả lời

9

như Thomas Jungblut đã nói, người ta có thể viết nhiều sách về câu hỏi của bạn ;-) Tôi sẽ cố gắng cung cấp cho bạn danh sách các gợi ý ngắn gọn - nhưng lưu ý rằng sẽ không có sẵn sàng để sử dụng giải pháp ...

  1. Thu thập thông tin internet: Có rất nhiều bộ công cụ để thực hiện việc này, như Scrapy for Python, crawler4j và Heritrix cho Java hoặc WWW :: Robot cho Perl. Để trích xuất nội dung thực tế từ các trang web, hãy xem xét nồi hơi.

    http://scrapy.org/

    http://crawler.archive.org/

    http://code.google.com/p/crawler4j/

    https://metacpan.org/module/WWW::Robot

    http://code.google.com/p/boilerpipe/

  2. Trước hết, thường bạn có thể sử dụng lọc cộng tác thay vì cách tiếp cận dựa trên nội dung. Nhưng nếu bạn muốn có bảo hiểm tốt, đặc biệt là ở đuôi dài, sẽ không có cách nào để phân tích văn bản. Một điều cần xem xét là mô hình hóa chủ đề, ví dụ: LDA. Một số phương pháp tiếp cận LDA được thực hiện trong Mallet, Apache Mahout và Vowpal Wabbit. Để lập chỉ mục, tìm kiếm và xử lý văn bản, hãy xem Lucene.Nó là một phần mềm tuyệt vời, trưởng thành.

    http://mallet.cs.umass.edu/

    http://mahout.apache.org/

    http://hunch.net/~vw/

    http://lucene.apache.org/

  3. Bên cạnh Apache Mahout đó cũng chứa những thứ như LDA (xem ở trên), clustering, và xử lý văn bản, cũng có bộ công cụ khác có sẵn nếu bạn muốn tập trung vào lọc cộng tác: LensKit, cũng được triển khai trong Java và MyMediaLite (từ chối trách nhiệm: Tôi là tác giả chính), được thực hiện trong C#, nhưng cũng có một cổng Java.

    http://lenskit.grouplens.org/

    http://ismll.de/mymedialite

    https://github.com/jcnewell/MyMediaLiteJava

+0

cảm ơn zenog cho câu trả lời mô tả của bạn. Đó là câu trả lời mà tôi đang tìm kiếm, được đánh giá cao :) –

4

này phải là một đọc tốt: Google news personalization: scalable online collaborative filtering

Nó tập trung vào việc lọc cộng tác chứ không phải là đề xuất nội dung dựa, nhưng nó chạm vào một số điểm rất thú vị như khả năng mở rộng, mục churn, thuật toán, thiết lập hệ thống và đánh giá.

Mahout có kỹ thuật lọc cộng tác rất tốt, đó là những gì bạn mô tả khi sử dụng hành vi của người dùng (nhấp, đọc, v.v) và bạn có thể giới thiệu một số nội dung dựa trên các lớp người chia sẻ.

Bạn cũng có thể muốn xem Myrrix, đó là một số cách mà sự tiến hóa của phần hương vị (còn được đề xuất) của Mahout. Ngoài ra, nó cũng cho phép áp dụng nội dung dựa trên logic trên đầu trang của lọc hợp tác bằng cách sử dụng các lớp rescorer.

Nếu bạn quan tâm đến Mahout, Mahout in Action book sẽ là nơi tốt nhất để bắt đầu.

+0

Cảm ơn bạn Astatic. Tôi đã không đọc qua các giấy bạn đề nghị, nhưng hy vọng nó bao gồm cách google tìm các trang web từ tất cả trên web so với các bài viết từ một trang web duy nhất. Myrrix có vẻ thú vị cần phải nhìn sâu hơn vào nó. Cảm ơn một lần nữa –