我写了一个程序,可以在文本中标示出所有所需词类的实例。以下是我的做法:
从整个文本中创建一个单词数组
遍历这个数组。对于每个单词,查看它的第一个字母。
- 跳转到所选词类的所有单词的对象中相应的数组(例如 'S'),并遍历它。如果找到该单词,则停止遍历并将其推入匹配的数组中。
检查完所有单词后,遍历匹配的数组,并在文本中突出显示每个匹配项。
在我的机器上,处理由24万个单词组成的文本,关于名词大约需要100秒,关于介词则只需4.5秒。
我正在寻找一种提高性能的方法,以下是我能想到的想法:
- 重新排列单词列表中每个块中的项目。按照这样的方式排序:如果单词以元音字母开头,则所有具有辅音字母作为第二个字符的项目首先出现,反之亦然。(假设双元音字母或辅音字母的单词很少)
- 将文本分成章节,只处理当前显示的章节。
这些想法可行吗?有没有其他想法或被证明可以提高此类处理性能的技术?