需要数据结构来发现一个句子中两个单词同时出现的可能性?

时间:2018-09-28 20:12:16

标签: python-3.x data-structures

我有一个近1 TB的大数据集。

数据只是文本。

我应该在整个语料库中发现两个单词同时出现。

我需要查看整个语料库并找到发生的可能性。

换句话说,我需要找到两个单词同时出现的所有句子。

但是我需要重复多次。

您将如何解决此问题,从而减少时间?

我只知道一些基本的Python。

清楚地为每个文件和每个句子构造一个for循环并一一计数是永远的。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

总体思路是:

  1. 扫描文本,识别句子和其中的单词。编写一个包含该信息的文本文件。例如,如果第一个文档中的第一句话是“那是一个黑暗而暴风雨的夜晚”。您将在文件中包含以下内容: 1, 1, It 1, 1, was 1, 1, a 1, 1, dark 1, 1, and 1, 1, stormy

完成后,您将拥有一个巨大文本文件,其中每个文档中的每个单词都包含一行。

然后,按单词,文档和句子编号对该文件进行排序。

现在,您可以浏览该文件并按单词创建索引。基本上,这将显示每个单词所在的句子。例如,“ dark”和“ stormy”的条目可能类似于:

dark: 1:1, 3:8, 22:99, ...
stormy: 1:1, 12:6, 22:99, ...

现在,如果有人要您告诉他们句子“暗”和“暴风雨”的出现位置,则可以获取两个单词的列表,进行交集并返回结果(1:1、22:99在这种情况下)。

对于少量(几兆字节)的数据,这并不是一件特别困难的事情。对于只有一点编程经验的人来说,这将是一个挑战性的练习。可行,但困难。

但是,当使用TB级数据时,您要么必须对数据结构非常有创造力,要么必须要解决很多硬件问题。我希望初学者可以解决的绝对不是问题。