Làm thế nào để xây dựng một công cụ tìm kiếm văn bản?


8

Tôi đang có một chuỗi HTML và muốn tìm hiểu xem một từ tôi cung cấp có liên quan trong chuỗi đó không.

Mức độ liên quan có thể được đo lường dựa trên tần số trong văn bản.

Một ví dụ để minh họa vấn đề của tôi:

this is an awesome bike store
bikes can be purchased online.
the bikes we own rock.
check out our bike store now

Bây giờ tôi muốn kiểm tra một vài từ khác:

bike repairs
dog poo

bike repairsnên được đánh dấu là có liên quan trong khi dog pookhông nên được đánh dấu là có liên quan.

Câu hỏi:

  • Làm thế nào điều này có thể được thực hiện?
  • Làm cách nào để tôi lọc ra những từ mơ hồ như inhoặcor

Cảm ơn ý tưởng của bạn!

Tôi đoán đó là điều Google làm để tìm ra những từ khóa nào có liên quan đến một trang web. Tôi về cơ bản đang cố gắng tái tạo thứ hạng trên trang của họ.


Chủ đề lớn, hãy xem Into to IR , điều này dẫn bạn từ những nguyên tắc cơ bản đầu tiên về cách xây dựng những gì bạn đang hỏi về. Một cái gì đó để tìm kiếm là tf-idf sau đó nhận ra điều này không giải quyết được mọi thứ và xem xét xác suất
bayes

Tại sao bạn coi "sửa chữa" là có liên quan?

Chỉ là một ví dụ. Đừng nghĩ quá nhiều về nó :). Tôi đoán nó không liên quan?
Hendrik

@Hendrik: vui lòng sử dụng @ <tên người dùng> để đánh địa chỉ người dùng - SE không thông báo cho tôi về nhận xét của bạn. Đếm mức độ liên quan là điểm mấu chốt trong các công cụ tìm kiếm (mặc dù thông thường bạn tính toán mức độ phù hợp của trang web với truy vấn tìm kiếm, bạn cần nó, phải không?). Tôi có hiểu đúng không khi bạn chỉ muốn biết cách tính mức độ liên quan của tài liệu với truy vấn tìm kiếm khi có các từ tương tự, nhưng không chính xác (ví dụ: "xe đạp" và, nói, "người đi xe đạp")?
ffriend

Tôi đoán bạn đang yêu cầu hai điều. Một là một vấn đề tìm kiếm khá hiểu. Bạn chỉ có thể sử dụng Solr hoặc Elaticsearch để thực hiện các công việc nặng nhọc cho bạn. Cả hai đều có thể tìm thấy các học giả có liên quan trong một bộ sưu tập bằng cách đánh trọng số. Tuy nhiên, nếu bạn muốn hiểu sâu hơn về ngữ nghĩa của văn bản (nghĩa là "sửa chữa" không được đề cập mà chỉ là một hoạt động điển hình trong cửa hàng xe đạp) thì công cụ tìm kiếm thuần túy có thể bị xẹp.
eckes

Câu trả lời:


3
  • xử lý trước tài liệu của bạn (một số bước có thể bị bỏ qua)
  • sử dụng mô hình Không gian Vector để thể hiện các tài liệu (bạn có thể sử dụng TF, TF-IDF đã nói ở trên hoặc các mô hình khác)
  • làm tương tự với truy vấn: tiền xử lý và biểu diễn nó trong không gian vectơ
  • tìm các tài liệu giống nhau nhất bằng cách tính độ tương tự của vectơ (ví dụ: sử dụng độ tương tự cosine )

Đó là một phác thảo của quá trình truy xuất thông tin

Giới thiệu về Truy xuất thông tin của Christopher D. Manning, Mitchhakar Raghavan và Hinrich Schütze là một cuốn sách rất hay để bắt đầu ở IR.


Hoặc chỉ cần sử dụng Apache Solr để lấy mọi thứ bạn cần ra khỏi hộp (hoặc Apache Lucene , được Solr sử dụng, để xây dựng ứng dụng của riêng bạn)


1

Tôi nhớ cách đây rất lâu khi chơi với Tìm kiếm đàn hồi (trang web bây giờ rất khác so với những gì tôi nhớ). Có một số nội dung về việc xử lý ngôn ngữ của con người ở đây: http://www.elSTERearch.org/guide/en/elSTERearch/guide/civerse/lacular.html

Được cảnh báo rằng Tìm kiếm đàn hồi giống như một bazooka lớn cho vấn đề của bạn. Nếu vấn đề của bạn rất đơn giản, có thể bạn muốn đi từ đầu. Có một số tài liệu trên web về nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.