白菜梗与大番薯465 2022-01-27 17:20 采纳率: 100%
浏览 43
已结题

jieba分词后,想要对分词进行词频统计和排序,使用print函数输出的是分词遍历的结果

jieba分词后,想要对分词进行词频统计和排序,使用print函数输出的是分词遍历的结果。
def chinese_word_cut(mytext):
jieba.load_userdict(dic_file)
jieba.initialize()
try:
    stopword_list = open(stop_file, encoding='utf-8')
except:
    stopword_list = []
    print("error in stop_file")
stop_list = []
flag_list = ['n', 'nz', 'vn']
for line in stopword_list:
    line = re.sub(u'\n|\\r', '', line)
    stop_list.append(line)
   # jieba分词
   seg_list = psg.cut(mytext)
    word_list = []
    word_freq = {}
    count_dict = dict()
    for seg_word in seg_list:
        # word = re.sub(u'[^\u4e00-\u9fa5]','',seg_word.word)
        word = seg_word.word
        find = 0
        for stop_word in stop_list:
            if stop_word == word or len(word) < 2:  # this word is stopword
                find = 1
                break
        if find == 0 and seg_word.flag in flag_list:
            for word in word_list:
                if word in word_freq:
                    count_dict[word] += 1
                else:
                    count_dict[word] = 1
            word_list.append(word)
        print(sorted(count_dict.items(),key=lambda x:x[1],reverse=True))


运行显示的是分词遍历的结果:[('文化', 1)] [('标准', 1)] [('印发', 1)]
我尝试过把for word in word_freq 等循环语句放在不同的位置,但是显示结果都是分词的遍历
想要最终显示出[(key,value)],value是key的总计值,而非是“1”。
  • 写回答

1条回答 默认 最新

  • youcans_ 人工智能领域优质创作者 2022-01-28 10:43
    关注
    
    h_txt = getText()
    words = h_txt.split()
    counts = {}
    for word in words:
        counts[word] = counts.get(word, 0) + 1
    items = list(counts.items())
    items.sort(key=lambda x: x[1], reverse=True)
    for i in range(10):
        s = items[i]
        print(s)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月5日
  • 已采纳回答 1月28日
  • 创建了问题 1月27日

悬赏问题

  • ¥15 QTableWidget重绘程序崩溃
  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含
  • ¥15 麒麟V10桌面版SP1如何配置bonding