Dictionary 字典理解:打字错误:';内置函数或方法';对象是不可编辑的

Dictionary 字典理解:打字错误:';内置函数或方法';对象是不可编辑的,dictionary,tags,nltk,stop-words,dictionary-comprehension,Dictionary,Tags,Nltk,Stop Words,Dictionary Comprehension,我有以下错误: 回溯(最近一次呼叫最后一次): “CSV_dico.py”,第65行,在 ={k:[[elt.lower()表示在v中的elt,如果elt.isalnum()表示在stopWords中的elt]表示在d_引理项中的k,v]} TypeError:“内置函数”或“方法”对象不可编辑 这是代码-我正在尝试删除stopwords,删除dictionnry中值和小写值的标点符号: import nltk from nltk import tokenize from nltk.tokeni

我有以下错误:

回溯(最近一次呼叫最后一次):
“CSV_dico.py”,第65行,在
={k:[[elt.lower()表示在v中的elt,如果elt.isalnum()表示在stopWords中的elt]表示在d_引理项中的k,v]}
TypeError:“内置函数”或“方法”对象不可编辑

这是代码-我正在尝试删除stopwords,删除dictionnry中值和小写值的标点符号:

import nltk
from nltk import tokenize
from nltk.tokenize import sent_tokenize, word_tokenize
from nltk.corpus import stopwords

d_filtered_Words ={}                            
stopWords = set(stopwords.words('french'))
d_filtered_Words = {k: [[elt.lower() for elt in v if elt.isalnum() if elt not in stopWords]for k,v in d_lemma.items]}

print(d_filtered_Words)

输入

 {'4721': ['me', 'piquer', 'au', 'bureau', ',', 'cela', 'être', 'à', 'envisager', '(', 'avec', 'le', 'DMI1', ')', '.', 'ce', 'être', 'pas', 'quelque', 'chose', 'que', 'je', 'faire', 'car', 'je', 'ne', 'me', 'piquer', 'pas', 'dans', 'le', 'journée', 'mais', 'je', 'penser', 'que', 'ce', 'être', 'quelque', 'chose', 'qui', 'pouvoir', 'très', 'bien', 'se', 'transporter', 'dans', 'un', 'trousse', 'au', 'toilette', 'comme', 'un', 'femme', 'mettre', 'tout', 'son', 'nécessaire', 'hygiénique', 'dans', 'un', 'trousse', 'quand', 'elle', 'se', 'rendre', 'au', 'toilette', '.', 'ce', 'être', 'sympa', ',', 'ce', 'être', 'discret', '.'], '4722': ['"', 'ce', 'être', 'le', 'côté', 'discrétion', '.', 'autant', 'je', 'parler', 'très', 'facilement', 'de', 'mon', 'maladie', 'mais', 'le', 'côté', '"', '"', '"', '"', 'je', 'me', 'soigner', '"', '"', '"', '"', ',', 'je', 'aimer', 'bien', 'que', 'cela', 'rester', 'discret', '.', 'ce', 'être', 'pour', 'cela', 'que', 'je', 'aimer', 'bien', '.', '"'], '4723': ['mon', 'fille', ',', 'quand', 'elle', 'revenir', 'à', 'le', 'maison', 'ne', 'vouloir', 'pas', 'que', 'le', 'gens', 'autour', 'savoir', 'qu’elle', 'être', 'mal', 'en', 'point', '.', 'elle', 'ne', 'vouloir', 'pas', 'd’infirmier', '(', 'e', ')', 'pour', 'faire', 'son', 'piqûre', ',', 'que', 'le', 'gens', 'ne', 'savoir', 'pas', '.', 'elle', 'me', 'demander', 'de', 'lui', 'faire', 'le', 'piqûre', 'mais', 'je', 'n’aime', 'pas', 'voir', 'ce', 'aiguille', '.', 'avec', 'cela', ',', 'c’est', 'parfait', ',', 'je', 'n’ai', 'pas', 'l’impression', 'de', 'lui', 'faire', 'le', 'piqûre', '.', 'je', 'n’ai', 'même', 'pas', 'à', 'pincer', 'le', 'peau', ',', 'je', 'poser', 'sur', 'le', 'ventre', 'et', 'cela', 'se', 'faire', 'tout', 'seul', '.'], '5433': ['moins', 'cher', '...', '@card@', '%', 'de', 'moins', '...', "C'", 'être', 'quand', 'même', 'moins', 'qualitatif', 'que', 'un', 'seau', '!']}

这里有多个问题

首先,您得到的错误是:

>>> d = {'a':'1'}
>>> d.items
<built-in method items of dict object at ...>
但是
d.items()
(带括号)是一个
dict\u items
对象:

>>> d.items()
dict_items([('a', '1')])
这是iterable(也就是说你可以在上面调用
iter
):

第二,你的口述理解:

>>> {k: [[elt.lower() for elt in v if elt.isalnum() if elt not in stopWords]for k,v in d_lemma.items()]}
Traceback (most recent call last):
...
NameError: name 'k' is not defined
k
从哪里来?它是来自
d_引理.items()
的一个键(注意方括号的位置):

不相关,因为
k
不在列表理解范围之外,而:

>>> {k: [...] for k,v in d_lemma.items()}
这是正确的

第三,双
if
可以是
if。。。和…

>>> {k: [elt.lower() for elt in v if elt.isalnum() and elt not in stopWords] for k,v in d_lemma.items()}
{'4721': ['piquer', 'bureau', 'cela', 'être', 'envisager', 'dmi1', 'être', 'quelque', 'chose', 'faire', 'car', 'piquer', 'journée', 'penser', 'être', 'quelque', 'chose', 'pouvoir', 'très', 'bien', 'transporter', 'trousse', 'toilette', 'comme', 'femme', 'mettre', 'tout', 'nécessaire', 'hygiénique', 'trousse', 'quand', 'rendre', 'toilette', 'être', 'sympa', 'être', 'discret'], '4722': ['être', 'côté', 'discrétion', 'autant', 'parler', 'très', 'facilement', 'maladie', 'côté', 'soigner', 'aimer', 'bien', 'cela', 'rester', 'discret', 'être', 'cela', 'aimer', 'bien'], '4723': ['fille', 'quand', 'revenir', 'maison', 'vouloir', 'gens', 'autour', 'savoir', 'être', 'mal', 'point', 'vouloir', 'e', 'faire', 'piqûre', 'gens', 'savoir', 'demander', 'faire', 'piqûre', 'voir', 'aiguille', 'cela', 'parfait', 'faire', 'piqûre', 'pincer', 'peau', 'poser', 'ventre', 'cela', 'faire', 'tout', 'seul'], '5433': ['moins', 'cher', 'moins', 'être', 'quand', 'moins', 'qualitatif', 'seau']}
第四,坚持:
stopWords
应该是
stop\u words
d\u filtered\u words
应该是
d\u filtered\u words
(这非常重要)

>>> {k: [... for k,v in d_lemma.items()]}
>>> {k: [...] for k,v in d_lemma.items()}
>>> {k: [elt.lower() for elt in v if elt.isalnum() and elt not in stopWords] for k,v in d_lemma.items()}
{'4721': ['piquer', 'bureau', 'cela', 'être', 'envisager', 'dmi1', 'être', 'quelque', 'chose', 'faire', 'car', 'piquer', 'journée', 'penser', 'être', 'quelque', 'chose', 'pouvoir', 'très', 'bien', 'transporter', 'trousse', 'toilette', 'comme', 'femme', 'mettre', 'tout', 'nécessaire', 'hygiénique', 'trousse', 'quand', 'rendre', 'toilette', 'être', 'sympa', 'être', 'discret'], '4722': ['être', 'côté', 'discrétion', 'autant', 'parler', 'très', 'facilement', 'maladie', 'côté', 'soigner', 'aimer', 'bien', 'cela', 'rester', 'discret', 'être', 'cela', 'aimer', 'bien'], '4723': ['fille', 'quand', 'revenir', 'maison', 'vouloir', 'gens', 'autour', 'savoir', 'être', 'mal', 'point', 'vouloir', 'e', 'faire', 'piqûre', 'gens', 'savoir', 'demander', 'faire', 'piqûre', 'voir', 'aiguille', 'cela', 'parfait', 'faire', 'piqûre', 'pincer', 'peau', 'poser', 'ventre', 'cela', 'faire', 'tout', 'seul'], '5433': ['moins', 'cher', 'moins', 'être', 'quand', 'moins', 'qualitatif', 'seau']}