Я обнаружил, что этот код Python используется для обработки текстовых файлов.
import nltk
import string
from collections import Counter
def get_tokens():
with open('/Users/MYUSERNAME/Desktop/Test_sp500/A_09.txt', 'r') as shakes:
text = shakes.read()
lowers = text.lower()
no_punctuation = lowers.translate(None,string.punctuation)
tokens = nltk.word_tokenize(no_punctuation)
return tokens
tokens = get_tokens()
count = Counter(tokens)
print
count.most_common(10)
from nltk.corpus import stopwords
tokens = get_tokens()
filtered = [w for w in tokens if not w in stopwords.words('english')]
count = Counter(filtered)
print
count.most_common(100)
from nltk.stem.porter import *
def stem_tokens(tokens, stemmer):
stemmed = []
for item in tokens:
stemmed.append(stemmer.stem(item))
return stemmed
stemmer = PorterStemmer()
stemmed = stem_tokens(filtered, stemmer)
count = Counter(stemmed)
print
count.most_common(100)
Когда я пытаюсь запустить эту программу, я получаю следующую ошибку:
Traceback (most recent call last):
File "/Users/MYUSERNAME/Desktop/stemmer.py", line 15, in <module>
tokens = get_tokens()
File "/Users/MYUSERNAME/Desktop/stemmer.py", line 10, in get_tokens
no_punctuation = lowers.translate(None,string.punctuation)
TypeError: translate() takes exactly one argument (2 given)
Теперь мои вопросы:
- Как это исправить?
- Когда эта программа работает, как я могу запустить этот скрипт не только для одного файла .txt, но и для всех файлов .txt в определенномdirectory?
Примечание: мне обычно не нужно программировать, поэтому я знаю только основы Python.