簡體   English   中英

我可以使用哪些“大數據”算法來分析文本文件之間的相似性?

[英]What “big-data” algorithms can I use in order to analyze similarites between text files?

我想創建一個獲取大量文本文件的系統(該系統每2分鍾獲取一些文本文件),並查找具有至少一個普通句子的文本文件。 我可以使用哪些算法來做到這一點?

謝謝

一種非常簡單的方法是在獲取每個文本文件時對其進行解析,並創建一個包含句子的數據庫以及包含該句子的文檔。 也就是說,您將擁有類似以下內容:

Sentences table
Key - a unique sequential integer
Hash - a 32-bit or 64-bit hash code created from the sentence
Text - The full sentence text

Files table
Key - a unique sequential integer
Name - the file's name

Associations table
FileKey
SentenceKey

因此,當您解析一個句子時,請創建哈希碼,並在數據庫中查詢包含該哈希碼的所有句子。 可能有多個。 如果找不到句子,或者遇到重復的哈希碼(即哈希匹配,但句子文本不同),則可以在“句子”表中創建一個新條目。 無論哪種情況,您都在“關聯”表中輸入一個條目,說“此文件包含此句子”。

您可以在解析的同時構建包含普通句子的文件列表。 只要找到匹配項,您要做的就是輸出公共文件。

如果以后要查詢數據,則可以按SentenceKey對“關聯”表進行排序,消除僅在一個文件中出現的句子,最后得到重復的句子。

那是大招。 我掩蓋了一些實施細節,但是並沒有涉及真正的繁重工作。

另外,您不必使用DBMS來執行此操作。 如果您有足夠的內存,則可以使用內存中的數據結構。 但是數據庫很方便,因為它可以持久存儲信息,並且旨在執行此類操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM