繁体   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