Pythonを使用してテキストを句読点で切り分ける

2436 ワード

分詞ツールパッケージ、例えばjiebaを使用すると、文を簡単に異なる単語に切り分けることができますが、文全体を切り分ける必要がある場合は、どうすればいいのでしょうか.
  • 段落を句点によって文全体
  • に切り分ける.
    1.jieba分詞は単語を切り分けることができる
    中国語の自然言語処理を行う場合、分詞は一般的な操作です.たとえば、次のようになります.
    import jieba.posseg as pseg
    txt = "【#        4S   #           】4 13 ,          4S    ,        。4S       ,              ,      ,       ,“           。”             。#         # "
    words = pseg.cut(txt)
    for word, flag in words:
        print('%s %s' % (word, flag))
    

    このコードを使用して、このテキスト情報に分詞と語性表示を行うと、次のような結果が得られます(一部省略).
    【 x
    # x
       v
      b
       n
    ...
    

    2.文全体を切り分ける——句読点で切り分ける
    単語を切り分ける必要はありません.文全体を切り分ける必要があります.つまり、句読点で切り分ける必要があります.では、このようにすることができます.
    import re
    txt = "【#        4S   #           】4 13 ,          4S    ,        。4S       ,              ,      ,       ,“           。”             。#         #  "
    pattern = r',|\.|/|;|\'|`|\[|\]||\?|:|"|\{|\}|\~|!|@|#|\$|%|\^|&|\(|\)|-|=|\_|\+|,|。|、|;|‘|’|【|】|·|!| |…|(|)'
    result_list = re.split(pattern, txt)
    print(result_list)
    

    これは正規表現を用いた文全体の切り分けであり,結果として以下のように句読点が自動的に切り分けられる.
    ['', '', '        4S   ', '', '          ', '4 13 ', '          4S    ', '        ', '4S       ', '              ', '      ', '       ', '“           ', '”             ', '', '         ', '', '']
    

    3.全文を切り分ける——句点で切り分ける
    コンマを残して句点で文全体を切り分けるには、完全な文が必要かもしれません.どうすればいいですか.正規表現のカンマを外すだけでいい
    import re
    txt = "【#        4S   #           】4 13 ,          4S    ,        。4S       ,              ,      ,       ,“           。”             。#         # "
    #pattern = r',|\.|/|;|\'|`|\[|\]||\?|:|"|\{|\}|\~|!|@|#|\$|%|\^|&|\(|\)|-|=|\_|\+|,|。|、|;|‘|’|【|】|·|!| |…|(|)'
    pattern = r'\.|/|;|\'|`|\[|\]||\?|:|"|\{|\}|\~|!|@|#|\$|%|\^|&|\(|\)|-|=|\_|\+|。|、|;|‘|’|【|】|·|!| |…|(|)'
    result_list = re.split(pattern, txt)
    print(result_list)
    
    

    結果は次のとおりです.
    ['', '', '        4S   ', '', '          ', '4 13 ,          4S    ,        ', '4S       ,              ,      ,       ,“           ', '”             ', '', '         ', '', '']
    

    getは着きましたか?