我创建了一个去package to remove stopwords,我试图优化它。在golang中,删除停用词的最快方法是什么?
根据我的研究,很多语言的停用词的平均列表包含大约300个词。
在当前版本的包中,我使用一个简单的地图来存储停用词表。然后,我将原始内容中的单词分开,并通过添加不在地图中(停用词)的单词重新创建过滤的内容。我试过使用bloom filter,但它不能改善性能。我认为这是由于两个因素:
- 布隆过滤器是快速,当涉及到搜索到一个大组,但他们花费了很多建(即使它是建立一次)。所以总体收益很小,其中m大约是300.
- 在当前版本中,我使用了地图,如果我记得很清楚,去建立一个快速搜索键的散列表。
有没有更快的方法?
当你分析你的程序时,你的瓶颈是什么? – JimB
测试它是否为停用词的行......如果_,ok:= dict [w];好吧{或if filter.Test([] byte(w)){ –