python统计该字符串中的英文单词的个数,并输出出现次数最多的前5个单词及其个数。 如何统计该字符串中的中文词组?
时间: 2024-11-29 20:37:21 浏览: 0
在Python中,要统计字符串中的英文单词并找出出现次数最多的前5个单词,可以使用`collections.Counter`和正则表达式库`re`。首先需要将字符串分割成单词列表,然后计算每个单词的频率。
```python
import re
from collections import Counter
def count_top_english_words(s):
# 使用正则表达式匹配英文单词
words = re.findall(r'\b\w+\b', s.lower())
word_counts = Counter(words)
# 找出出现次数最多的前5个单词及其计数
top_5 = word_counts.most_common(5)
return top_5
# 测试示例
s = "This is a sample string with several English words and repeated ones like 'sample'."
top_5_words = count_top_english_words(s)
print("Top 5 most common English words:")
for word, count in top_5_words:
print(f"{word}: {count} times")
# 对于中文词组,由于Python默认处理的是Unicode字符,所以直接按空格分隔即可,不过这里需要注意的是中文词组通常不是由单个汉字组成的,而是有意义的词组,如“人工智能”,不是一个简单的分词任务。
def count_chinese_phrases(s):
chinese_phrases = s.split()
# 可能需要根据实际需求使用更复杂的分词工具,如jieba库
# 这里简单地假设词组是由空格隔开的连续汉字构成
filtered_phrases = [phrase for phrase in chinese_phrases if all('\u4e00' <= char <= '\u9fff' for char in phrase)]
return filtered_phrases
s = "这是一个包含一些中文词组的字符串。"
chinese_phrases = count_chinese_phrases(s)
print("Chinese phrases:")
for phrase in chinese_phrases:
print(phrase)
```
阅读全文