チャット分割するのPython、ユーザーが最も懸念している見つけるために質問をします!

背景:

タスクをオーサリングするための最近の部門長、ユーザーは、データテーブルから望んでチャット、より多くの心配を見つけるためにその質問のユーザ(すなわち:言葉のユーザーが最高に表示されるように求めた周波数協議プロセス)を記録後半を充当するためには、調整は、マーケティング戦略などを変更し、ビジネスを行います


チャットは次のとおりです。

もしもし

米国は、博士号の申請をしたいために

彼女は今年卒業します。2020年に申請するための準備。適用する予定で、金融や工業用および商業用

私たちは、用意されています

少数の中国人があります。水の比較。

まだです。博士は熾烈な競争。私たちは、Dosen学校を意図します。

それはそれをQQ。1111111

ありがとう

2222222

一般的には学部GPA。3.4外観

211

学生

都行的

ああ良いです

依頼する手間下では、最初のQQに連絡します

電話番号は受信することができない場合があります

ああペア

ああ

ありがとう


アイデア:

Jiebaモジュールカスタム・シソーラスチャットに各分割を使用して(例:中国語の単語)、そしてその結果は、テーブルの真ん中、結果をまとめたもので、この最後の中間テーブルに単語ごとに保存されています。jiebaは、新しい単語を識別する能力を持っていますが、特定の領域のための単語の単語辞書は、サブ単語認識かもしれませんが、キーワードのカスタムライブラリを使用して、特に満足のいくものではない、あなたは、より高い時に単語のを確保することができます精度。


出典:


猫userdict.txt

留学

海外に行くために、

卒業生

英国

米国


猫fenci_dictionary.py

輸入jieba.analyse

輸入pymysql


DB = pymysql.connect(ホスト= 'XX.XX.XX.XX'、ユーザ= 'XXX' は、passwd = 'XXX'、DB = 'DBNAME'、文字セット= 'UTF8'、CONNECT_TIMEOUT = 30)

カーソル= db.cursor()


SQL = 'テーブル名MSG_TYPE = "G" 限界50からSELECT MSG'

cursor.execute(SQL)

結果= cursor.fetchall()


結果の行のための:

    行=行[0]


    # UserDictionary Model

    jieba.load_userdict('userdict.txt')

    for i in jieba.cut(row):

        sql1 = 'insert into test.tmp_fenci_statistic(keywords) values("%s")' % i

        try:

            cursor.execute(sql1)

            db.commit()

        except:

            db.rollback()


db.close()


jieba介绍:


jieba分词器安装(就是一个Python模块)

pip3 install jieba


jieba分词添加自定义词典:

如果词库中没有特定领域的词语,或者对于某个特定领域的关键词不是识别的特别令人满意,虽然jieba具备了新词语的识别能力,但是我们可以自定义属于自己的关键词库,以便在分词时保证更高的准确性


语法:

jieba.load_userdict(filename)    #filename为自定义的词典路径


词典格式:

一个词占一行,可以包含三个部分,1:词语,2:词频;3:词性  2、3 都可以省略,之间用空格隔开


例:

cat userdict.txt

留学

出国

研究生

英国

美国


题外:

jieba还支持全精确模式、全模式、搜索引擎模式的分词功能,这些分词功能,无绝对的优劣之分,主要看适不适用于业务分析。关于这部分的内容,如果读者有兴趣,请自行百度查阅吧。

おすすめ

転載: blog.51cto.com/20131104/2437545