jieba分詞(標注詞性)


本人初學python代碼不夠規范 望見諒

本段代碼可以完成對文本信息的分詞(標注詞性)、去停用詞、以及存儲到本地TXT文件中

 1 # coding:utf-8
 2 import re
 3 import json
 4 import jieba.posseg as pseg
 5 import string
 6 import datetime
 7 import zhon.hanzi
 8 import get_comment.SQL
 9 
10 #   要清洗掉的中文標點
11 ignoring_words = list(zhon.hanzi.punctuation)+list(string.punctuation)
12 #   數據庫表中沒有存儲評論的表名稱
13 ignoring_table = ['phone_info', 'phone_url', 'error_table']
14 
15 
16 #   將分詞后的數據儲存到本地
17 def text_save(content, filename, mode='a'):
18     file = open(filename, mode)
19     file.write(str(content))    # 存儲為str格式
20     # 此處為存儲為json格式
21     # js = json.dumps(content)
22     # file.write(js)
23     file.close()
24 
25 
26 #   獲取數據庫中的評論
27 def get_comments(phones_id, i):
28     mysql = get_comment.SQL.save_mysql()    # 調用數據庫操作
29     comment = mysql.read_comment_phone(phones_id, i)
30     for ob in comment:
31         return str((ob[0]))
32 
33 
34 #   調用jieba分詞包進行分詞
35 def jieba_cut(phones_id, i):
36     comment = get_comments(phones_id, i)
37     comments_dict = dict(pseg.cut(comment))
38     return comments_dict
39 
40 
41 #   獲取數據庫中的所有儲存評論信息的表名
42 def get_phone_table():
43     mysql = get_comment.SQL.save_mysql()
44     phone_id_list = list(mysql.select_all_table('jd'))
45     for table in phone_id_list:
46         if table[0] in ignoring_table:
47             phone_id_list.remove(table)
48     phone_id_list.pop()
49     return phone_id_list
50 
51 
52 #   調用其他函數完成數據的存儲,格式為txt
53 def save_file(phone_id1):
54     with open('E:\\PythonFile\\tingyongci.txt') as ti:
55         ti_list = list(ti.read())  # 獲取停用詞表(綜合哈工大停用詞詞表)
56     for i in range(1, 1000):
57         with open('E:\\PythonFile\\tingyongci.txt') as ti:
58             ti_list = list(ti.read())  # 獲取停用詞表(綜合哈工大停用詞詞表)
59         for i in range(1, 1000):
60             try:
61                 new_dic = {}
62                 new_dic1 = jieba_cut(phone_id1, i)
63                 for key, value in new_dic1.items():
64                     if key not in ti_list:
65                         new_dic[key] = value
66                     else:
67                         pass
68             except:
69                 continue
70             print(new_dic)
71             text_save(new_dic, 'E:\\PythonFile\\jd\\phone\\%s.txt' % phone_id1)
72     print('----------------------id=%s---------------------------' % phone_id)
73 
74 
75 if __name__ == "__main__":
76         start_time = datetime.datetime.now()
77         phone_table_lists = get_phone_table()
78         for phone_table_name in phone_table_lists:
79             phone_id = re.sub("\D", "", phone_table_name[0])    # 獲取表名中的phone_id
80             save_file(int(phone_id))
81             print("--------------id=%s--------------" % phone_id)
82         end_time = datetime.datetime.now()
83         print('運行時間:')
84         print(end_time - start_time)

附部分運行后的存儲結果:

注:jieba分詞的詞性表如下:

  另附詞性標注表如下:

1. 名詞 (1個一類,7個二類,5個三類)
  名詞分為以下子類:
    n 名詞
    nr 人名
    nr1 漢語姓氏
    nr2 漢語名字
    nrj 日語人名
    nrf 音譯人名
    ns 地名
    nsf 音譯地名
    nt 機構團體名
    nz 其它專名
    nl 名詞性慣用語
    ng 名詞性語素
2. 時間詞(1個一類,1個二類)
    t 時間詞
    tg 時間詞性語素
3. 處所詞(1個一類)
    s 處所詞
4. 方位詞(1個一類)
    f 方位詞
5. 動詞(1個一類,9個二類)
    v 動詞
    vd 副動詞
    vn 名動詞
    vshi 動詞“是”
    vyou 動詞“有”
    vf 趨向動詞
    vx 形式動詞
    vi 不及物動詞(內動詞)
    vl 動詞性慣用語
    vg 動詞性語素
6. 形容詞(1個一類,4個二類)
    a 形容詞
    ad 副形詞
    an 名形詞
    ag 形容詞性語素
    al 形容詞性慣用語
7. 區別詞(1個一類,2個二類)
    b 區別詞
    bl 區別詞性慣用語
8. 狀態詞(1個一類)
    z 狀態詞
9. 代詞(1個一類,4個二類,6個三類)
    r 代詞
    rr 人稱代詞
    rz 指示代詞
    rzt 時間指示代詞
    rzs 處所指示代詞
    rzv 謂詞性指示代詞
    ry 疑問代詞
    ryt 時間疑問代詞
    rys 處所疑問代詞
    ryv 謂詞性疑問代詞
    rg 代詞性語素
10. 數詞(1個一類,1個二類)
    m 數詞
    mq 數量詞
11. 量詞(1個一類,2個二類)
    q 量詞
    qv 動量詞
    qt 時量詞
12. 副詞(1個一類)
    d 副詞
13. 介詞(1個一類,2個二類)
    p 介詞
    pba 介詞“把”
    pbei 介詞“被”
14. 連詞(1個一類,1個二類)
    c 連詞
    cc 並列連詞
15. 助詞(1個一類,15個二類)
    u 助詞
    uzhe 着
    ule 了 嘍
    uguo 過
    ude1 的 底
    ude2 地
    ude3 得
    usuo 所
    udeng 等 等等 雲雲
    uyy 一樣 一般 似的 般
    udh 的話
    uls 來講 來說 而言 說來
    uzhi 之
    ulian 連 (“連小學生都會”)
16. 嘆詞(1個一類)
    e 嘆詞
17. 語氣詞(1個一類)
    y 語氣詞(delete yg)
18. 擬聲詞(1個一類)
    o 擬聲詞
19. 前綴(1個一類)
    h 前綴
20. 后綴(1個一類)
    k 后綴
21. 字符串(1個一類,2個二類)
    x 字符串
    xx 非語素字
    xu 網址URL
22. 標點符號(1個一類,16個二類)
    w 標點符號
    wkz 左括號,全角:( 〔 [ { 《 【 〖 〈 半角:( [ { <
    wky 右括號,全角:) 〕 ] } 》 】 〗 〉 半角: ) ] { >
    wyz 左引號,全角:“ ‘ 『
    wyy 右引號,全角:” ’ 』
    wj 句號,全角:。
    ww 問號,全角:? 半角:?
    wt 嘆號,全角:! 半角:!
    wd 逗號,全角:, 半角:,
    wf 分號,全角:; 半角: ;
    wn 頓號,全角:、
    wm 冒號,全角:: 半角: :
    ws 省略號,全角:…… …
    wp 破折號,全角:—— -- ——- 半角:--- ----
    wb 百分號千分號,全角:% ‰ 半角:%
    wh 單位符號,全角:¥ $ £ ° ℃ 半角:$


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM