当前位置: 首页 > 知识库问答 >
问题:

在大型文本语料库中查找常见单词序列的技术?

端木存
2023-03-14

有没有任何算法可以有效地在大量文本中找到n个最常见的k个单词序列?

例如,如果n=1k=5,我的语料库是:

a b a b a c d e f a b a b a c c b c b a b c

输出将是a b a

共有1个答案

公西志文
2023-03-14

这里有一个简单的算法。按k个单词的顺序拆分单词序列,每个单词一行一行。例如,我们有:

a b a b a
b a b a c
a b a c d
b a c d e
a c d e f
c d e f a
d e f a b
e f a b a
f a b a b
a b a b a
b a b a c
a b a c c
b a c c b
a c c b c
c c b c b
c b c b a
b c b a b
c b a b c
c b a b c

对它们进行排序:

a b a b a
a b a b a
a b a c c
a b a c d
a c c b c
a c d e f
b a b a c
b a b a c
b a c c b
b a c d e
b c b a b
c b a b c
c b a b c
c b c b a
c c b c b
c d e f a
d e f a b
e f a b a
f a b a b

现在很容易找到最常见的k序列。如果文件非常大,您可能需要将其拆分,对各部分进行排序,然后合并各部分。

 类似资料:
  • 问题内容: 我有看起来像这样的数据: 我想要一个函数,该函数根据我选择的movie_id返回注释中最常用的词。因此,如果我查询movie_id = 1,则会得到: 如果我查询movie_id = 2,则会得到: 我看到了一些使用tsql的解决方案,但我以前从未使用过,也不了解代码。寻找一种在sqlite3中做到这一点的方法。 问题答案: 您可以使用一个非常丑陋的查询来执行此操作。 这是未经测试的。

  • 问题内容: 我试图加快我的项目以计算单词频率的速度。我有360多个文本文件,我需要获取单词的总数以及另一个单词列表中每个单词出现的次数。我知道如何使用单个文本文件执行此操作。 要获得“通货膨胀”,“工作”,“产出”个体的频率过于繁琐。我可以将这些单词放入列表中并同时查找列表中所有单词的出现频率吗?基本上,这与Python。 示例:代替此: 我想这样做(我知道这不是真实的代码,这是我在寻求帮助的内容

  • 假设你得到了一个巨大的文件,比如1GB。该文件每行包含一个单词(总共n个单词),您希望在该文件中找到k个最常见的术语。 现在,假设您有足够的内存来存储这些单词,那么在减少内存使用量和Big-O复杂性中的恒定开销方面,什么是更好的解决问题的方法?我相信有两种基本算法可以使用: 使用一个哈希表和一个最小堆来存储出现的次数和前K个单词。这是O(n nlogk)~O(n) 使用trie存储单词和出现的次数

  • 问题内容: 我在MySql DB的一个表中有一个文本列。我想获取在文本列中具有特定单词的所有记录。例如: 在这种情况下,当搜索“ cto”时,我希望查询返回记录1,2,3,4,而不是5。 有任何想法吗? ps我希望它不区分大小写 问题答案: 您可能希望根据全文索引使用全文索引。否则,您可以使用REGEXP来指定正则表达式来搜索单词。您应该看到此问题(和答案),以了解如何使用REGEXP查找单词。

  • 我有一篇很长的文章,还有一长串我想在这篇文章中找到的单词。 现在,为了搜索这些单词,我检查“正则表达式”,然后找到“word1 | word2 | word3 | word4…”问题是,如果其中一个单词是“eat”,那么包含“eat”的每个单词也会高亮显示。我怎样才能防止呢?

  • 我正在处理一个以标记/单词列表的形式出现的大型语料库。语料库包含约1900000个单词,我运行了一个代码来获取最频繁的单词,现在语料库有140000个单词。 我想删除出现在文档中超过95%而少于5%的单词 语料库的样本 首先,我找到了最常用的单词 然后,我应用这个for循环来查找出现率超过95%的单词列表 但这段代码需要很长时间才能运行,并且不会返回任何输出。 我也试图按照一些答案我发现和应用Co