【发布时间】:2011-05-30 02:01:15
【问题描述】:
我有一个存储为字符串变量的文本文件。处理文本文件,使其仅包含小写单词和空格。现在,假设我有一个静态字典,它只是一个特定单词的列表,我想从文本文件中计算字典中每个单词的频率。例如:
Text file:
i love love vb development although i m a total newbie
Dictionary:
love, development, fire, stone
我希望看到的输出类似于以下内容,列出了字典中的单词及其计数。如果它使编码更简单,它也可以只列出文本中出现的字典单词。
===========
WORD, COUNT
love, 2
development, 1
fire, 0
stone, 0
============
使用正则表达式(例如“\w+”)我可以获得所有单词匹配,但我不知道如何获得字典中的计数,所以我被卡住了。效率在这里至关重要,因为字典很大(约 100,000 个单词),文本文件也不小(每个约 200kb)。
感谢任何帮助。
【问题讨论】:
-
可能类似于将字符串拆分为
Array或List,然后迭代/处理列表? -
您已将其标记为 c# 和 vb.net。是哪个?
-
FWIW,在这里使用正则表达式来匹配单词不是一个好主意,特别是因为您在问题中指出输入是干净的(仅小写字母和空格。)使用 String.Split 代替.除此之外,这确实是一个微不足道的问题。在 .NET 文档中查找字典。
-
@pcantin:现在他们在家庭作业中使用 100,000 字的字典吗?诚然,大学对我来说是 30 年前的事了,但对于家庭作业来说,这似乎仍然非常庞大和详细......?
-
@RBarryYoung 因为您可以轻松地从 Project Gutenberg 下载完整的字典,所以没有真正的理由不使用它。