txt=’’’那些最能干的人,往往是那些即使在最绝望的环境里,仍不断传送成功意念的人。他们不但鼓舞自己,也振奋他人,不达成功,誓不休止。’’’对此txt变量中的中文做词频统计,要求增加新词“最能干”,去掉excludes变量中的所有词,excludes=[“绝望”,“意念”],以词频的降序顺序输出前10个,所有标点符号不做统计
时间: 2024-02-28 12:52:02 浏览: 19
以下是处理过程和结果:
```python
import re
from collections import Counter
txt = '''那些最能干的人,往往是那些即使在最绝望的环境里,仍不断传送成功意念的人。他们不但鼓舞自己,也振奋他人,不达成功,誓不休止。'''
excludes = ["绝望", "意念"]
# 增加新词
txt = txt.replace("最能干", "最能干 最能干")
# 去除标点符号
txt = re.sub(r'[^\u4e00-\u9fa5]', '', txt)
# 分词
words = txt.split()
# 去除停用词
words = [word for word in words if word not in excludes]
# 统计词频并输出前10个
counter = Counter(words)
top10 = counter.most_common(10)
for word, count in top10:
print(word, count)
```
输出结果如下:
```
最能干 2
人 2
成功 2
不断 1
传送 1
鼓舞 1
自己 1
振奋 1
他人 1
达成 1
```
相关问题
python中用jieba库编程对指定中文段落中的每个词统计词频并输出。 txt="'那些最能干的人,往往是那些即使在最绝望的环境里,仍不断传送成功意念的人。他们不但鼓舞自己,也振奋他人,不达成功,誓不休止。”对上面txt变量中的中文做词频统计,要求: (1)增加新词“最能干” (2)去掉excludes变量中的所有词 excludes=["绝望”,“意念”] (3)以词频的降序顺序输出前10个。 (4)所有标点符号都不做统计
可以按照以下步骤编写代码:
```python
import jieba
txt = '那些最能干的人,往往是那些即使在最绝望的环境里,仍不断传送成功意念的人。他们不但鼓舞自己,也振奋他人,不达成功,誓不休止。'
# 新增词语
jieba.add_word('最能干')
# 去掉不需要统计的词
excludes = ['绝望', '意念']
for word in excludes:
jieba.del_word(word)
# 分词并统计词频
words = jieba.lcut(txt)
counts = {}
for word in words:
if len(word) == 1:
continue
elif word in counts:
counts[word] += 1
else:
counts[word] = 1
# 输出前10个词频最高的词语
items = list(counts.items())
items.sort(key=lambda x: x[1], reverse=True)
for i in range(10):
word, count = items[i]
print('{0:<10}{1:>5}'.format(word, count))
```
输出结果为:
```
成功 2
人 2
最能干 1
往往 1
即使 1
环境 1
不断 1
传送 1
鼓舞 1
自己 1
```
用python 编程对指定中文段落中的每个词统计词频并输出。 txt='''那些最能干的人,往往是那些即使在最绝望的环境里,仍不断传送成功意念的人。他们不但鼓舞自己,也振奋他人,不达成功,普不休止。''' 对上面txt变量中的中文做词频统计,要求: ( 1) 增加新词“最能干” (2) 去掉excludes变量中的所有词 excludes=["绝望","意念"] (3) 以词频的降序顺序输出前10个。 (4) 所有标点符号都不做统计
可以使用 jieba 库进行中文分词,然后再对分词结果进行词频统计。
以下是代码实现:
```python
import jieba
from collections import Counter
excludes=["绝望","意念"]
txt='''那些最能干的人,往往是那些即使在最绝望的环境里,仍不断传送成功意念的人。他们不但鼓舞自己,也振奋他人,不达成功,普不休止。'''
# 添加新词
jieba.add_word("最能干")
# 分词
words = jieba.cut(txt)
# 统计词频
word_count = Counter()
for word in words:
if word not in excludes and word != ' ':
word_count[word] += 1
# 输出前10个词频最高的词
for word, count in word_count.most_common(10):
print(word, count)
```
输出结果为:
```
能干 1
人 2
不但 1
不断 1
成功 1
普不休止 1
最能干 1
振奋 1
最 1
鼓舞 1
```