无法从实用程序导入 process_tweets
Unable to import process_tweets from utils
感谢您的调查,我有一个 python 程序,我需要 process_tweet
和 build_freqs
来完成某些 NLP 任务,nltk
已经安装并且 utils
不是 所以我通过 pip install utils
安装了它,但是上面提到的两个模块显然没有安装,我得到的错误是标准错误,
ImportError: cannot import name 'process_tweet' from
'utils' (C:\Python\lib\site-packages\utils\__init__.py)
我做错了什么或者有什么遗漏吗?
我也提到了
def process_tweet(tweet):
stemmer = PorterStemmer()
stopwords_english = stopwords.words('english')
tweet = re.sub(r'$\w*', '', tweet)
tweet = re.sub(r'^RT[\s]+', '', tweet)
tweet = re.sub(r'https?:\/\/.*[\r\n]*', '', tweet)
tweet = re.sub(r'#', '', tweet)
tokenizer = TweetTokenizer(preserve_case=False, strip_handles=True,reduce_len=True)
tweet_tokens = tokenizer.tokenize(tweet)
tweets_clean = []
for word in tweet_tokens:
if (word not in stopwords_english and
word not in string.punctuation):
stem_word = stemmer.stem(word) # stemming word
tweets_clean.append(stem_word)
return tweets_clean
如果您在 deeplearning.ai 上学习 NLP 课程,那么我相信 utils.py 文件是由该课程的讲师创建的,用于实验室课程,不应该与通常的实用程序混淆。
您可以使用 ?? 轻松访问任何源代码,例如在这种情况下:process_tweet?? (以上代码来自 deeplearning.ai NLP 课程客户实用程序库):
def process_tweet(tweet):
"""Process tweet function.
Input:
tweet: a string containing a tweet
Output:
tweets_clean: a list of words containing the processed tweet
"""
stemmer = PorterStemmer()
stopwords_english = stopwords.words('english')
# remove stock market tickers like $GE
tweet = re.sub(r'$\w*', '', tweet)
# remove old style retweet text "RT"
tweet = re.sub(r'^RT[\s]+', '', tweet)
# remove hyperlinks
tweet = re.sub(r'https?:\/\/.*[\r\n]*', '', tweet)
# remove hashtags
# only removing the hash # sign from the word
tweet = re.sub(r'#', '', tweet)
# tokenize tweets
tokenizer = TweetTokenizer(preserve_case=False, strip_handles=True,
reduce_len=True)
tweet_tokens = tokenizer.tokenize(tweet)
tweets_clean = []
for word in tweet_tokens:
if (word not in stopwords_english and # remove stopwords
word not in string.punctuation): # remove punctuation
# tweets_clean.append(word)
stem_word = stemmer.stem(word) # stemming word
tweets_clean.append(stem_word)
我猜你根本不需要使用 process_tweet
。课程中的代码只是总结你从开始到词干步骤所做的一切的捷径;因此,忽略该步骤并打印出 tweet_stem
以查看原始文本和预处理文本之间的区别。