从字典的值中删除标点符号和停止词

2024-04-26 13:06:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一本这样的字典:

{'47': ['je', 'ne', 'comprendre', 'pas', 'le', 'vie', 'et', 'je', '?', 'suivre|être', 'perdre', 'aide', 'moi', 'stp', 'maman', 'je', 'suivre|être', 'perdre', 'tu', 'être', 'mon', 'seul', 'ami', 'et', 'je', 'te', 'aimer']})

我想删除此词典中每个值的停止词

stopwords文件如下所示:

{'avait', 'étants', 'se', 'sa', 'fûtes', 'serai', 'serais', 'as', 'aura', 'dans', 'suis', 'le', 'fusse', 'eue', 'serait', 'une', 'notre', 'nos', 'c', 'soyez', 'ait', 'soyons', 'eûtes', 'sois', 'au', 'que', 'étées', 'aurez', 'ma', 'd', 'ayant', 'ton', 'elle', 'à', 'avez', 'un', 'seras', 'avons', 'eusse', 'même', 'fussent', 'aurons', 'soit', 'ta', 'fusses', 'auront', 'fussions', 'te', 'm', 'auras', 'fus', 'l', 'êtes', 'sommes', 'étaient', 'fûmes', 'aux', 'ayons', 'aie', 'aviez', 'mon', 'vos', 'serons', 'serions', 'eut', 'sur', 'étantes', 'j', 'aies', 'avec', 'eusses', 'eurent', 'sont', 'ces', 'ayantes', 'furent', 'ce', 'étante', 'fut', 'y', 'aurions', 'lui', 'ayez', 'mais', 'seriez', 'des', 'eux', 'ayants', 'eu', 'me', 'est', 'en', 'il', 'ne', 'eûmes', 'mes', 'eussions', 'serez', 'seraient', 'aurais', 'fût', 'eût', 'par', 'moi', 'de', 'son', 'fussiez', 'n', 'ses', 'aurai', 'auraient', 'étiez', 's', 'toi', 'ai', 'étions', 't', 'nous', 'était', 'ont', 'du', 'vous', 'on', 'avais', 'leur', 'qui', 'la', 'avions', 'ayante', 'auriez', 'étés', 'qu', 'es', 'aient', 'pas', 'avaient', 'tu', 'eussiez', 'ou', 'tes', 'je', 'été', 'sera', 'votre', 'soient', 'pour', 'eus', 'étant', 'aurait', 'et', 'seront', 'eussent', 'étais', 'étée', 'eues'}

我的代码:

stopWords = set(stopwords.words('french'))
print(stopWords)
d_filtered = defaultdict(list)
for k, v in d_lemma.items():
    for p in v:
        if p.isalnum():
            if p not in stopWords:
                d_filtered[key] = v

print(d_filtered)

我在删除停止词和使用isalnum()时遇到问题,我还想删除标点符号。我该怎么做


Tags: inlepastesfilteredettrene
1条回答
网友
1楼 · 发布于 2024-04-26 13:06:43

您可以使用列表理解来过滤dict理解中的停止词和非字母字符:

{k: [w for w in l if w not in stopWords and w.isalpha()] for k, l in d_lemma.items()}

这将返回:

{'47': ['comprendre', 'vie', 'perdre', 'aide', 'stp', 'maman', 'perdre', 'être', 'seul', 'ami', 'aimer']}

相关问题 更多 >