demo_结巴分词拆解菜单.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. # -*- codeing = utf-8 -*-
  2. # @Time : 2022/12/29 11:28
  3. # @Author : Clown
  4. # @File : demo_结巴分词拆解菜单.py
  5. # @Software : PyCharm
  6. import re # 正则表达式库
  7. import collections # 词频统计库
  8. import numpy as np # numpy数据处理库
  9. import jieba # 结巴分词
  10. import pandas as pd
  11. import jieba.posseg as jp
  12. import json
  13. import wordcloud # 词云展示库
  14. from PIL import Image # 图像处理库
  15. import matplotlib.pyplot as plt # 图像展示库
  16. import csv
  17. jieba.load_userdict("C:/Users/ClownHe/PycharmProjects/pythonProject/venv/Lib/site-packages/jieba/mydict.txt")#加载自定义词库
  18. # 读取文件
  19. path = "C:/Users/ClownHe/Desktop/组合.xlsx"
  20. data = pd.read_excel(path,dtype=str)
  21. title = ["平台商品名称","关键词"]
  22. with open("C:/Users/ClownHe/Desktop/平台名称拆解no2.csv", 'a', newline='',
  23. encoding="utf-8-sig") as t: # encoding= "utf-8"
  24. writer = csv.writer(t) # 这一步是创建一个csv的写入
  25. writer.writerow(title) # 写入标签
  26. for goods in data["平台商品名称"]:
  27. # 文本预处理
  28. # pattern = re.compile(u'\t|\n|\.|-|:|;|\)|\(|\?|"') # 定义正则表达式匹配模式
  29. pattern = re.compile(u'[^\u4e00-\u9fa5]')
  30. string_data = re.sub(pattern,'', goods) # 将符合模式的字符去除
  31. # 文本分词
  32. # seg_list_exact = jieba.cut_for_search(string_data) # 搜索模式
  33. seg_list_exact = jieba.cut(string_data,use_paddle=True) # 搜索模式
  34. # seg_list_exact = jp.cut(string_data)
  35. # remove_words = [u'的', u'+',u'(', u')', u'(', u')', u'[',u']',u'1',u'个',u'4',u'包',u'2',u'3',u'4',u'5',u'不要',u'尊享',u'加辣',u'加'] # 自定义去除词库
  36. for word in seg_list_exact: # 循环读出每个分词
  37. # if word not in remove_words: # 如果不在去除词库中
  38. # w = word.word
  39. # f = word.flag
  40. # object_list.append([w,f]) # 分词追加到列表
  41. # object_list.append(word) # 分词追加到列表
  42. object_list = [[goods,word]]
  43. writer.writerows(object_list) # 写入样本数据