清洗多词氟利昂停用词

时间:2019-04-16 12:00:25

标签: python-3.x

我有一个表达式列表,我需要从这些表达式中删除停用词。

ex = ["andare con i piedi di piombo", "avere gli occhi foderati di prosciutto", 'non chiudere occhio', 'con le mani nel sacco']

stopwords = ["ad","al", "allo", "ai","agli", "all", "alla", "col", "in", "il", "della", "un", "con", "non", "i", "di", "le", "nei", "gli"]

我尝试过

for es in ex:
    new_ex = ''
    for word in stopwords:
         new_es = es.replace(" " +word+ " ", "")
    print(new_es)

上面的代码不会删除停用词

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

使用您的示例

ex = ["andare con i piedi di piombo", "avere gli occhi foderati di prosciutto", 'non chiudere occhio', 'con le mani nel sacco']

stopwords = ["ad","al", "allo", "ai","agli", "all", "alla", "col", "in", "il", "della", "un", "con", "non", "i", "di", "le", "nei", "gli"]

您可以选择:

for es in ex:
es = es.split()
new_es = ''
for word in es:
  if word not in stopwords:
      new_es += word + ' '
print(new_es)

答案 1 :(得分:0)

这将完成工作:

sentences = [
        'andare con i piedi di piombo',
        'avere gli occhi foderati di prosciutto',
        'non chiudere occhio',
        'con le mani nel sacco'
]

words = [
        'ad',
        'al',
        'allo',
        'ai',
        'agli',
        'all',
        'alla',
        'col',
        'in',
        'il',
        'della',
        'un',
        'con',
        'non',
        'i',
        'di',
        'le',
        'nei',
        'gli'
]

for sentence in sentences:
    s = sentence
    for word in words:
        s = s.replace(f' {word} ', '')
    print(s)

代码中的问题是您需要制作new_ex = ex并在replace()上使用new_ex

以下是上面代码的输出:

andarei piedipiombo
avereocchi foderatiprosciutto
non chiudere occhio
conmani nel sacco

还请注意,'non chiudere occhio'保持不变,因为您正在寻找用空格填充的word