我将文本存储在python字符串中。
我想要什么
请记住......
我有什么
我已经在使用nltk将语料库分解为令牌并删除了停用词:
# split across any non-word character
tokenizer = nltk.tokenize.RegexpTokenizer('[^\w\']+', gaps=True)
# tokenize
tokens = tokenizer.tokenize(text)
# remove stopwords
tokens = [w for w in tokens if not w in nltk.corpus.stopwords.words('english')]
我知道BigramCollocationFinder和TrigramCollectionFinder对于这两种情况很有用。
问题
我需要更高阶n-gram的建议,改进BCF和TCF的结果类型,并提供最佳方法来确定最独特的关键词。
非常感谢!
答案 0 :(得分:1)
至于识别最独特的个别关键词的最佳方法,tfidf是总量度。因此,您可以以某种方式集成搜索引擎(或创建一个简单的自定义反向索引,它是动态的并保存术语频率,文档频率),以便有效地和即时地计算tfidf。
至于你的N-gram,为什么不使用“窗口”方法(窗口长度为N)创建自定义解析器,以识别最常见的? (只需将每个N-gram保存为字典中的一个键,其值可以是频率或分数(基于单个术语的tfidf))