gpt4 book ai didi

python - str.translate 给出 TypeError - Translate 接受一个参数(给定 2 个),在 Python 2 中工作

转载 作者:IT老高 更新时间:2023-10-28 20:33:33 26 4
gpt4 key购买 nike

我有以下代码

import nltk, os, json, csv, string, cPickle
from scipy.stats import scoreatpercentile

lmtzr = nltk.stem.wordnet.WordNetLemmatizer()

def sanitize(wordList):
answer = [word.translate(None, string.punctuation) for word in wordList]
answer = [lmtzr.lemmatize(word.lower()) for word in answer]
return answer

words = []
for filename in json_list:
words.extend([sanitize(nltk.word_tokenize(' '.join([tweet['text']
for tweet in json.load(open(filename,READ))])))])

我在编写时已在单独的 testing.py 文件中测试了第 2-4 行

import nltk, os, json, csv, string, cPickle
from scipy.stats import scoreatpercentile

wordList= ['\'the', 'the', '"the']
print wordList
wordList2 = [word.translate(None, string.punctuation) for word in wordList]
print wordList2
answer = [lmtzr.lemmatize(word.lower()) for word in wordList2]
print answer

freq = nltk.FreqDist(wordList2)
print freq

命令提示符返回 ['the','the','the'],这就是我想要的(删除标点符号)。

但是,当我将完全相同的代码放在不同的文件中时,python 返回一个 TypeError 说明

File "foo.py", line 8, in <module>
for tweet in json.load(open(filename, READ))])))])
File "foo.py", line 2, in sanitize
answer = [word.translate(None, string.punctuation) for word in wordList]
TypeError: translate() takes exactly one argument (2 given)

json_list 是所有文件路径的列表(我打印并检查此列表是否有效)。我对这个 TypeError 感到困惑,因为当我只是在不同的文件中测试它时,一切正常。

最佳答案

如果您想要完成的只是在 Python 3 中做与在 Python 2 中所做的相同的事情,那么我在 Python 2.0 中所做的就是丢弃标点符号和数字:

text = text.translate(None, string.punctuation)
text = text.translate(None, '1234567890')

这是我的 Python 3.0 等效项:

text = text.translate(str.maketrans('','',string.punctuation))
text = text.translate(str.maketrans('','','1234567890'))

基本上它说“什么都不翻译”(前两个参数)并将任何标点符号或数字转换为 None(即删除它们)。

关于python - str.translate 给出 TypeError - Translate 接受一个参数(给定 2 个),在 Python 2 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23175809/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com