【发布时间】:2015-05-18 05:49:00
【问题描述】:
我已经使用
阅读了一个语料库file_directory = 'path'
my_corpus = PlaintextCorpusReader(file_directory,'.*',encoding='latin1')
我执行预处理
totalwords = my_corpus.words()
docs = [my_corpus.words(f) for f in fids]
docs2 = [[w.lower()for w in doc]for doc in docs]
docs3 = [[w for w in doc if re.search('^[a-z]+$',w)]for doc in docs2]
from nltk.corpus import stopwords
stop_list = stopwords.words('english')
docs4 = [[w for w in doc if w not in stop_list]for doc in docs3]
wordscount = [w for doc in docs4 for w in doc]
fd_dist_total = nltk.FreqDist(wordscount)
print(fd_dist_total.most_common(common_words))
收到的输出是
words = [('ubs', 131), ('pacific', 130), ('us', 121), ('credit', 113), ('aum', 108), ('suisse', 102), ('asia', 98), ('arm', 95)]
我想知道是否可以将 'suisse' 的 102 个值替换为 'credit-suisse'。同样将 'asia' 替换为 'asia-pacific'
预期输出--
words = [('credit-suisse', 102), ('credit', 11) , ('pacific', 32), ('asia-pacific', 98)]
我尝试过使用
wordscount1 = [w.replace('asia','asia-pacific').replace('suisse', 'credit-suisse') for w in wordscount]
但是我遇到了明显的错误。
请指导我。
【问题讨论】:
-
为什么
credit-suisse分配给102而不是113或113 + 102? -
以及为什么您收到的输出与您的预期输出有很大不同,特别是值!!!
-
words = [('ubs', 131), ('pacific', 130), ('us', 121), ('credit', 113), ('aum', 108) , ('suisse', 102), ('asia', 98), ('arm', 95)]。只是一个例子@Kasra。我希望所有的 suisse 都被“credit-suisse”取代。如何确保剩余的 11 (113-102) 个“信用”也在输出中?