jieba分詞(標註詞性),jieba分詞標註詞性

來源:互聯網
上載者:User

jieba分詞(標註詞性),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_dict39 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_list50 51 52 #   調用其他函數完成資料的儲存,格式為txt53 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] = value66                     else:67                         pass68             except:69                 continue70             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_id80             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 單位符號,全形:¥ $ £ ° ℃ 半形:$

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.