2011-12-20 74 views
6


Tôi đang cố gắng lấy thông tin liên hệ trong các trang nội dung từ một tập hợp các trang web (hàng nghìn trang). Tôi muốn hỏi các chuyên gia như các bạn trước khi gãi đầu. Tất cả những gì tôi cần là địa chỉ, id email, số điện thoại và thông tin người liên hệ nếu có.Thuật toán chuỗi tìm kiếm

Tôi nghĩ bạn đã hiểu sự cố rồi. Vâng, đó là định dạng ... vì không có định dạng chuẩn mà các trang web theo dõi, thật khó để xác định chính xác thông tin mà tôi cần. Một số trang web được thiết kế với các trang liên hệ với chúng tôi flash và một số trang web khác đã thiết kế thông tin liên hệ dưới dạng các loại hình ảnh có phông chữ tùy chỉnh.

Và gợi ý/ý tưởng/đề xuất chủ yếu là chào đón ...

Cảm ơn bạn ....

+3

có bạn phiền chia sẻ những gì bạn sẽ làm gì với thông tin này? Mọi người sẽ có nhiều khả năng giúp bạn hơn nếu họ không nghĩ họ đang giúp người gửi spam. –

+0

Tôi không phải là một spammer :-) Tôi thực sự ngưỡng mộ quan tâm của bạn ... Tôi là một kế hoạch để phát triển một trang web như một wiki kinh doanh với rất nhiều tùy chọn lọc giúp cả doanh nghiệp và khách hàng – Krishna

+0

bạn muốn làm một số IR, phải mất một nhìn vào Lucene, nó thực sự mạnh mẽ – JohnJohnGa

Trả lời

10

Đây là như bạn mong đợi, không phải là một nhiệm vụ tầm thường. Dưới đây là một cách tiếp cận này:

  1. Sử dụng một hệ thống lập chỉ mục ngược như Lucene/Solr hay Sphinx chỉ mục các trang. Bạn có thể cần phải viết trình thu thập thông tin/nhện của riêng bạn. Apache Nutch và các trình thu thập dữ liệu khác cung cấp khả năng chạy ra khỏi hộp. Nếu nội dung khá tĩnh, hãy tải chúng xuống hệ thống của bạn cục bộ.

  2. Khi nội dung được lập chỉ mục, bạn có thể truy vấn nội dung email, số điện thoại, v.v. bằng cách tạo truy vấn boolean như: // cho email // cho điện thoại # dấu ngoặc đơn Nội dung: @ AND (Nội dung: .COM HOẶC Nội dung: .NET) HOẶC Nội dung: "(" OR Nội dung: ")" `Quan trọng: mã nói trên không nên được thực hiện theo nghĩa đen. Bạn thậm chí có thể trở nên giàu có hơn bằng cách sử dụng Lucene Regex Query & Truy vấn Span cho phép bạn tạo các truy vấn khá tinh vi.

  3. Cuối cùng trên các trang kết quả, (a) chạy một highlighter kết quả để có được đoạn (s) xung quanh thuật ngữ truy vấn và, (b) trên các đoạn, chạy một regex để trích xuất ra các lĩnh vực quan tâm .

  4. Nếu bạn có tập dữ liệu địa chỉ ở Bắc Mỹ, bạn có thể chạy nhiều lần để xác thực địa chỉ với i) nhà cung cấp bản đồ như Bing Maps hoặc Google maps để xác minh địa chỉ. Theo như tôi biết, USPS và những người khác cung cấp tra cứu địa chỉ hợp lệ cho một khoản phí, để xác thực mã zip của Hoa Kỳ và mã bưu chính Canada. hoặc, ii) tra cứu DNS ngược cho các địa chỉ email và vân vân ....

Điều đó sẽ giúp bạn bắt đầu .... như tôi đã nói, không có giải pháp tốt nhất ở đây, bạn sẽ cần phải thử nhiều cách tiếp cận để lặp lại và đạt đến mức độ chính xác mà bạn mong muốn.

Hy vọng điều này sẽ hữu ích.

+0

Cũng có tại www.searchblox.com, nó cung cấp các trang web thu thập thông tin vv ra khỏi hộp và được xây dựng trên đỉnh Lucene. – Mikos

+0

Tôi hy vọng cách tiếp cận này cũng tương tự cho việc kéo các sự kiện đặc biệt và thời gian quá từ trang web .. Ví dụ ... sự kiện: nerd dinner; thời gian: ngày 5 tháng 7 năm 2012 @ 7 giờ tối. – Krishna

+0

Đúng, bất kỳ thứ gì có thể bị hối lộ đều có thể được rút ra. – Mikos

3

Conditional Random Fields đã được sử dụng chính xác cho các tác vụ như thế này và đã khá thành công. Bạn có thể sử dụng CRF++ hoặc Stanford Named Entity Recognizer. Cả hai có thể được gọi từ dòng lệnh mà không cần phải viết bất kỳ mã rõ ràng nào.

Tóm lại, bạn cần có khả năng đào tạo các thuật toán này lần đầu tiên bằng cách cung cấp cho họ một số ví dụ về tên, ID email ... từ các trang web để họ học cách nhận ra những điều này. Khi các thuật toán này đã thông minh (vì các ví dụ bạn đã cung cấp cho chúng), bạn có thể chạy chúng trên dữ liệu của bạn và xem những gì bạn nhận được.

Đừng sợ hãi nhìn vào trang wikipedia. Các gói đi kèm với rất nhiều ví dụ, và bạn sẽ được và chạy trong một vài giờ.

1

@Mikos là đúng, bạn sẽ chắc chắn cần nhiều phương pháp tiếp cận. Một công cụ khác có thể xem xét là Web-Harvest. Nó là một công cụ để thu thập dữ liệu web và nó cho phép bạn thu thập các trang web và trích xuất dữ liệu mà bạn quan tâm. Tất cả điều này được thực hiện thông qua các tệp cấu hình XML. Phần mềm này cũng có giao diện GUI và giao diện dòng lệnh.

Nó cho phép bạn sử dụng các kỹ thuật cho các thao tác văn bản/xml như XSLT, XQuery và Regular Expressions, bạn cũng có thể xây dựng các plugin của riêng bạn. Tuy nhiên, nó chủ yếu tập trung vào các trang web dựa trên HTML/XML.

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