2012-06-27 38 views
7

Tôi đang tìm kiếm một viên ngọc có thể so sánh hai chuỗi (trong trường hợp này là đoạn văn bản) và có khả năng đánh giá khả năng chúng tương tự về nội dung (có lẽ chỉ có một vài từ được sắp xếp lại, thay đổi). Tôi tin rằng SO sử dụng một cái gì đó tương tự khi người dùng gửi câu hỏi.Ruby gem để so sánh văn bản

+0

Bạn luôn có thể so sánh số lượng từ. Bất cứ điều gì nhiều hơn thế sẽ là hiểu biết về máy tính, và bạn sẽ vượt xa những gì bạn đang cố gắng làm. – Linuxios

Trả lời

7

tôi có lẽ muốn sử dụng cái gì đó như Diff :: LCS:

>> require "diff/lcs" 
>> seq1 = "lorem ipsum dolor sit amet consequtor".split(" ") 
>> seq2 = "lorem ipsum dolor amet sit consequtor".split(" ") 
1.9.3-p194 :010 > Diff::LCS.diff(seq1, seq2).length 
=> 2 

Nó sử dụng thuật toán longest common subsequence (phương pháp cho việc sử dụng LCS để có được một diff được mô tả trên the wiki page).

+0

Cảm ơn bạn Yehuda, không biết bạn treo xung quanh SO. CS lý thuyết của tôi ngày càng trở nên khốc liệt hơn khi tôi tự đào sâu vào Rails và các công nghệ chuyển động nhanh hơn, thực ra tôi hầu như không thấy mình xây dựng các thuật toán phức tạp từ đầu ... –

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