假设我有字符串:
"HMG-CoA reductase is a rate-limiting enzyme. HMG-CoA reductase is the primary enzyme in cholesterol synthesis."
我想计算字符串中令牌的频率。但是,我希望'HMG-CoA reductase'
成为一个令牌(即,我不想要单个词'HMG-Coa'
和'reductase'
的频率。
我认为一个好的方法是创建一个双字母组列表:
[HMG-CoA reductase, reductase is, ..., cholesterol synthesis]
和三卦
[HMG-CoA reductase is, ..., in cholesterol synthesis]
然后计算每个n-gram列表的元素的频率。如果bigram或trigram列表的一个元素接近(高于某个阈值)unigram列表中元素的频率,那么我会知道bigram或trigram,而不是unigram,是我的标记' 。
我想在大量非结构化文本数据上执行此操作。它是相当标准的文字。我的方法的一个问题是我需要任意设置阈值。 NLTK中是否已有用于解决此问题的库,或者是否有人知道常用方法?