删除不是二元组或三元组的关键字(Yake)

Remove keywords which are not bigram or trigram (Yake)

我正在使用 Yake(Yet Another Keyword Extractor)从数据框中提取关键字。 我只想提取二元组和三元组,但 Yake 只允许设置最大 ngram 大小而不是最小大小。你会如何删除它们?

示例 df.head(0):

正文: 'oui , yes , i mumbled , the linguistic transition now in limbo .'

关键词: '[('oui', 0.04491197687864554), ('linguistic transition', 0.09700399286574239), ('mumbled', 0.15831692877998726)]'

我想从关键字列中删除 oui、mumbled 和他们的分数。

感谢您的宝贵时间!

如果您需要处理来自 Yake 的字母组合大小写,只需将输出传递给一个过滤器,该过滤器仅在结果列表的第一个元素中有 space 时才将 n-gram 添加到结果列表中元组或者如果该元素的 str.split() 导致超过 1 个子元素。如果您正在使用函数并将其应用于数据框,请将此步骤包含在该函数中。

如果您的问题是关键字列表包含一些字母组​​合,您可以简单地执行一个过滤器来忽略没有空格的单词并创建一个新列表。我给你举个例子:

keywords_without_unigrams = []
for kw in keywords:
    if(' ' in kw[0]):
        keywords_without_unigrams.append(kw)
 

for kw in keywords_without_unigrams:
    print(kw)