2010-09-21 32 views
5

Tôi bắt đầu làm việc trên khôi phục sơ yếu lý lịch (tài liệu) dựa trên công cụ lucene.net. Nó hoạt động tuyệt vời, và rồi nó lấy tài liệu và điểm số nó dựa trênTính toán điểm số chỉ dựa trên các tài liệu có nhiều sự xuất hiện của thuật ngữ trong lucene

ý tưởng đằng sau các VSM là càng lần một thuật ngữ truy vấn xuất hiện trong một tài liệu liên quan đến số lượng lần thuật ngữ xuất hiện trong tất cả các tài liệu trong bộ sưu tập, số tài liệu có liên quan hơn là truy vấn .

Chức năng chấm điểm thực tế của Lucene có nguồn gốc từ bên dưới.

score(q,d)=coord(q,d)·queryNorm(q)· ∑(tf(t in d) ·idf(t)2 · t.getBoost() · norm(t,d)) 
            t in q 

trong

  • tf này (t trong d) tương quan với tần số của thuật ngữ, định nghĩa là số của t lần hạn xuất hiện trong tài liệu hiện ghi d. Tài liệu có nhiều lần xuất hiện của một cụm từ nhất định nhận được điểm số cao hơn
  • idf (t) là viết tắt của Tần suất tài liệu nghịch đảo. Giá trị này tương quan với nghịch đảo của docFreq (số tài liệu trong đó thuật ngữ t xuất hiện). Điều này có nghĩa là các thuật ngữ hiếm có đóng góp cao hơn cho tổng số điểm.

này là rất lớn thực sự trong hầu hết các tình huống, nhưng do tính fieldnorm kết quả là không chính xác

fieldnorm aka "chuẩn mực chiều dài trường" Giá trị hiện chiều dài của lĩnh vực đó trong doc rằng (các trường ngắn hơn được tự động tăng lên).

Do đó, chúng tôi không nhận được kết quả chính xác. Nói cho một ví dụ tôi có 10000 tài liệu trong đó 3000 tài liệu có từ khóa java và oracle. Và không có lần nào nó xuất hiện khác nhau trên mỗi tài liệu.

  • giả doc Một có 10 java 20 oracle trong 1000 từ và doc B có 2 java 2 oracle trong 50 từ
  • nếu là tìm kiếm một truy vấn "java và oracle", Lucene trả doc B với điểm số cao do chuẩn hóa độ dài.

Do tính chất của doanh nghiệp chúng tôi cần truy xuất tài liệu có nhiều từ khóa tìm kiếm hơn nên đến trước, chúng tôi không thực sự quan tâm đến độ dài của tài liệu.

Bởi vì điều này một Guy với một sơ yếu lý lịch lớn với nhiều từ khóa được di chuyển bên dưới trong kết quả và một số hồ sơ nhỏ đã xuất hiện.

Để tránh điều đó, tôi cần tắt chuẩn hóa độ dài. Ai đó có thể giúp tôi với điều này??

Tôi đã đính kèm hình ảnh kết quả Luke để bạn tham khảo.

Trong hình ảnh này, tài liệu với java 50 lần và oracle 6 lần được chuyển xuống vị trí thứ 11.

alt text

Nhưng tài liệu này với java 24 lần và oracle 5 lần là một chân sút hàng đầu do fieldnorm.

alt text

Hope tôi chuyển tải những thông tin rõ ràng ... Nếu không được xin hỏi tôi, tôi sẽ cung cấp cho biết thêm

Trả lời

7

Bạn có thể tắt bình thường chiều dài với Field.setOmitNorms(true)

+0

nhờ Shashikant, tôi sẽ cố gắng mà .. :) – RameshVel

+0

Shasi, nó hoạt động như mong đợi ... bạn đã lưu ngày của tôi ...... – RameshVel

+0

câu hỏi dài cho câu trả lời ngắn như vậy;) – serg10

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