设计两个程序来完成 Windows 上的文本处理任务

问题描述 投票:0回答:1

任务:给定每首美国和英国歌曲的足够大且无偏斜样本的歌词,获取歌词,将它们分解为独特的单词(称为歌词'),然后将它们存储到一个不断增长的独特单词列表中。单词(称为词典)。如果歌词中有未存储在词典中的单词,则这些单词将添加到词典中。如果歌词'中的每个单词也在词典中找到,那么添加歌词'会导致词典保持不变(幂等性)。

对象: 一个将歌词转换为唯一单词列表的程序,一个将第一个程序的输出添加到词典中的程序,以及词典本身(可能是一个简单的 .txt 文件,但如果有更好的东西) ,请推荐。)

操作系统:Windows 11 Home。

令人担忧的是,该列表可能会变得非常大,以至于通过歌词中每个单词的词典进行线性搜索来检查唯一性可能会非常昂贵。

设置和编程这三个对象的最有效方法是什么,以便该任务能够成功

windows algorithm text-processing
1个回答
0
投票

问题有 3 个部分

  1. 将歌词分解成独特的单词
  • 一个好的自然语言处理库应该会有所帮助。
  1. 向词典添加独特的单词
  • 后缀树或 Trie 数据结构可能最适合这项工作。你可以选择 Set in python 来实现幂等性
  1. 如何存储词典
  • 我建议使用数据库来做到这一点。您可以使用 SQL,或者如果您需要免费的字符串搜索,您也可以利用 elasticsearch。然而,这会使这里的设计变得复杂,但如果您的列表是无界的,那么您将需要一些持久存储来存储数据。

您可以在内存中保留一个缓冲区作为缓存,并在发生缓存未命中时查找数据库。

© www.soinside.com 2019 - 2024. All rights reserved.