删除重复单词的重复单词

时间:2019-04-10 13:07:39

标签: python python-3.x nlp natural-language-processing

我有以下意见:

{'time pickup': 8, 'pickup drop': 7, 'bus good': 5, 'good bus': 5, 'best service': 4, 'rest stop': 4, 'comfortable journey': 4, 'good service': 4, 'everything good': 3, 'staff behaviour': 3, ...}

您可以看到索引2和3中的每个词都相同,我需要删除其中一个,建议删除无意义的词。

我将句子反转,稍后我将通过检查两个匹配项来删除一个。 但是,如果再输入多个单词,其复杂性可能会很高。

def remDups(s):
    words = s.split(' ') 
    string =[] 
    for word in words: 
        string.insert(0, word) 

    print("Reversed String:") 
    return (" ".join(string)).strip()

如果有人知道有效的方法,请帮助我。

2 个答案:

答案 0 :(得分:1)

您可以按空格分隔句子并将结果转换为一组。由于集合是无序的,因此{'bus', 'good'}{'good', 'bus'}的比较将相等。

答案 1 :(得分:1)

您可以对单词进行排序,并利用字典本身来确保没有重复

代码

def remDeps(s):
    return {" ".join(sorted(key.split(" "))):s[key] for key in s}

示例用法

a = {'time pickup': 8, 'pickup drop': 7, 'bus good': 5, 'good bus': 5, 'best service': 4, 'rest stop': 4, 'comfortable journey': 4, 'good service': 4, 'everything good': 3, 'staff behaviour': 3}
remDeps(a)

输出

 {'pickup time': 8,
 'drop pickup': 7,
 'bus good': 5,
 'best service': 4,
 'rest stop': 4,
 'comfortable journey': 4,
 'good service': 4,
 'everything good': 3,
 'behaviour staff': 3}