【問(wèn)題1】用 jieba 分詞外莲,計(jì)算字符串 s 中的中文詞匯個(gè)數(shù),不包括中文標(biāo)點(diǎn)符號(hào)兔朦。顯示輸分詞后的結(jié)果偷线,用”/ ”分隔,以及中文詞匯個(gè)數(shù)沽甥。示例如下:
輸入:
工業(yè)互聯(lián)網(wǎng)”實(shí)施的方式是通過(guò)通信声邦、控制和計(jì)算技術(shù)的交叉應(yīng)用,建造一個(gè)信息物理系統(tǒng)摆舟,促進(jìn)物理系統(tǒng)和數(shù)字系統(tǒng)的融合亥曹。
輸出:
工業(yè)/ 互聯(lián)網(wǎng)/實(shí)施/ 的/ 方式/是/ 通過(guò)/ 通信/控制/ 和/ 計(jì)算技術(shù)/的/ 交叉/ 應(yīng)用/建造/ 一個(gè)/ 信息/物理/ 系統(tǒng)/ 促進(jìn)/物理/ 系統(tǒng)/ 和/數(shù)字/ 系統(tǒng)/ 的/融合/
中文詞語(yǔ)數(shù)是:27
問(wèn)題2:在問(wèn)題1的基礎(chǔ)上邓了,統(tǒng)計(jì)分詞后的詞匯出現(xiàn)的次數(shù),用字典結(jié)構(gòu)保存媳瞪。顯示輸出每個(gè)詞匯出現(xiàn)的次數(shù)骗炉,以及出現(xiàn)次數(shù)最多的詞匯。如果有多個(gè)詞匯出現(xiàn)次數(shù)一樣多蛇受,都要顯示出來(lái)句葵。示例如下:##
繼續(xù)輸出:
控制: 1
物理: 2
通信: 1
交叉: 1
互聯(lián)網(wǎng): 1
和: 2
是: 1
計(jì)算技術(shù): 1
一個(gè): 1
的: 3
數(shù)字: 1
促進(jìn): 1
信息: 1
方式: 1
建造: 1
應(yīng)用: 1
系統(tǒng): 3
通過(guò): 1
實(shí)施: 1
融合: 1
工業(yè): 1
出現(xiàn)最多的詞是(的 系統(tǒng)):3 次
【解題思路】
1. 用 jieba 分詞處理詞匯統(tǒng)計(jì)
2. 要處理掉輸入的各種標(biāo)點(diǎn)符號(hào),用到replace()
3. 用字典保存各個(gè)詞出現(xiàn)次數(shù)
4. 要遍歷字典的鍵值對(duì)兢仰,找到最大的值乍丈,及其對(duì)應(yīng)的鍵
import jieba
from collections import Counter
n = 0
s = "工業(yè)互聯(lián)網(wǎng)實(shí)施的方式是通過(guò)通信、控制和計(jì)算技術(shù)的交叉應(yīng)用建造一個(gè)信息物理系統(tǒng)把将,促進(jìn)物理系統(tǒng)和數(shù)字系統(tǒng)的融合轻专。"
# 標(biāo)點(diǎn)符號(hào)都去掉
s = s.replace("、", "")
s = s.replace("察蹲,", "")
s = s.replace("铭若。", "")
j = jieba.lcut(s) # 拆分若干詞組
dic = Counter(j) # 若干詞組轉(zhuǎn)換成字典統(tǒng)計(jì)數(shù)量
# dic.keys()
st = set(j) # 詞組列表轉(zhuǎn)換成無(wú)序但是不重復(fù)的Set集合為準(zhǔn)備dict字典的鍵值調(diào)用
print("/".join(j)) # j集合用反斜杠相連
for i in st: # 遍歷Set集合,集合元素就是字典的key值
n = n+dic.get(i) # 統(tǒng)計(jì)個(gè)數(shù)
print(i+":"+str(dic.get(i)))
print("總個(gè)數(shù):"+str(n))