欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python機(jī)器學(xué)習(xí)NLP自然語言處理基本操作家暴歸類

 更新時(shí)間:2021年09月21日 15:21:52   作者:我是小白呀  
本文是Python機(jī)器學(xué)習(xí)NLP自然語言處理系列文章,帶大家開啟一段學(xué)習(xí)自然語言處理 (NLP) 的旅程。本篇文章主要學(xué)習(xí)NLP自然語言處理家暴歸類

概述

從今天開始我們將開啟一段自然語言處理 (NLP) 的旅程. 自然語言處理可以讓來處理, 理解, 以及運(yùn)用人類的語言, 實(shí)現(xiàn)機(jī)器語言和人類語言之間的溝通橋梁.

在這里插入圖片描述

數(shù)據(jù)介紹

該數(shù)據(jù)是家庭暴力的一份司法數(shù)據(jù).分為 4 個(gè)不同類別: 報(bào)警人被老公打,報(bào)警人被老婆打,報(bào)警人被兒子打,報(bào)警人被女兒打. 今天我們就要運(yùn)用我們前幾次學(xué)到的知識(shí), 來實(shí)現(xiàn)一個(gè) NLP 分類問題.

在這里插入圖片描述

詞頻統(tǒng)計(jì)

CountVectorizer是一個(gè)文本特征提取的方法. 可以幫助我們計(jì)算每種詞匯在該訓(xùn)練文本中出現(xiàn)的頻率, 以獲得詞頻矩陣.

格式:

vec = CountVectorizer(
        analyzer="word",
        max_features=4000
    )

參數(shù):

analyzer: 對(duì)語料進(jìn)行 “word” 或 “char” 分析

max_features: 最大關(guān)鍵詞集 方法列表 作用fit()擬合transform()返回詞頻統(tǒng)計(jì)矩陣

樸素貝葉斯

MultinomialNB多項(xiàng)式樸素貝葉斯, 是一種非常常見的分類方法.

公式:

 P(B|A) = P(B)*P(A|B)/P(A)

例子:

假設(shè)北京冬天堵車的概率是 80% P(B) = 0.8
假設(shè)北京冬天下雪的概率是 10% P(A) = 0.1
如果某一天堵車,下雪的概率是 10%, P(A|B) = 0.1
我們就可以得到P(B|A)= P(B)堵車的概率0.8 * P(A|B),如果某一天堵車,下雪的概率 0.1
除以P(A) 下雪的概率 = 0.1,等到0.8
也就是說如果北京冬天某一天下雪,那么有80%可能性當(dāng)天會(huì)堵車

代碼實(shí)現(xiàn)

在這里插入圖片描述

預(yù)處理

import random
import jieba
import pandas as pd
def load_data():
    """
    加載數(shù)據(jù), 進(jìn)行基本轉(zhuǎn)換
    :return: 老公, 老婆, 兒子, 女兒 (家暴數(shù)據(jù))
    """
    # 加載停用詞
    stopwords = pd.read_csv('data/stopwords.txt', index_col=False, quoting=3, sep="\t", names=['stopword'],
                            encoding='utf-8')
    stopwords = stopwords['stopword'].values
    print(stopwords, len(stopwords))
    # 加載語料
    laogong_df = pd.read_csv("data/beilaogongda.csv", encoding="utf-8", sep=",")
    laopo_df = pd.read_csv("data/beilaopoda.csv", encoding="utf-8", sep=",")
    erzi_df = pd.read_csv("data/beierzida.csv", encoding="utf-8", sep=",")
    nver_df = pd.read_csv("data/beinverda.csv", encoding="utf-8", sep=",")
    # 去除nan
    laogong_df.dropna(inplace=True)
    laopo_df.dropna(inplace=True)
    erzi_df.dropna(inplace=True)
    nver_df.dropna(inplace=True)
    # 轉(zhuǎn)換
    laogong = laogong_df.segment.values.tolist()
    laopo = laopo_df.segment.values.tolist()
    erzi = erzi_df.segment.values.tolist()
    nver = nver_df.segment.values.tolist()
    # 調(diào)試輸出
    print(laogong[:5])
    print(laopo[:5])
    print(erzi[:5])
    print(nver[:5])
    return laogong, laopo, erzi, nver, stopwords
def pre_process_data(content_lines, category, stop_words):
    """
    數(shù)據(jù)預(yù)處理
    :param content_lines: 語料
    :param category: 分類
    :param stop_words: 停用詞
    :return: 預(yù)處理完的數(shù)據(jù)
    """
    # 存放結(jié)果
    sentences = []
    # 遍歷
    for line in content_lines:
        try:
            segs = jieba.lcut(line)
            segs = [v for v in segs if not str(v).isdigit()]  # 去除數(shù)字
            segs = list(filter(lambda x: x.strip(), segs))  # 去除左右空格
            segs = list(filter(lambda x: len(x) > 1, segs))  # 長度為1的字符
            segs = list(filter(lambda x: x not in stop_words, segs))  # 去除停用詞
            result = (" ".join(segs), category)  # 空格拼接
            sentences.append(result)
        except Exception:
            # 打印錯(cuò)誤行
            print(line)
            continue
    return sentences
def pre_process():
    """
    數(shù)據(jù)預(yù)處理主函數(shù)
    :return: 返回預(yù)處理好的語料 (分詞 + 標(biāo)注)
    """
    # 讀取數(shù)據(jù)
    laogong, laopo, erzi, nver, stop_words = load_data()
    # 預(yù)處理
    laogong = pre_process_data(laogong, 0, stop_words)
    laopo = pre_process_data(laopo, 1, stop_words)
    erzi = pre_process_data(erzi, 2, stop_words)
    nver = pre_process_data(nver, 3, stop_words)
    # 調(diào)試輸出
    print(laogong[:2])
    print(laopo[:2])
    print(erzi[:2])
    print(nver[:2])
    # 拼接
    result = laogong + laopo + erzi + nver
    return result
if __name__ == '__main__':
    pre_process()

主函數(shù)

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
from pre_peocessing import pre_process
def main(sentences):
    """主函數(shù)"""
    # 實(shí)例化
    vec = CountVectorizer(
        analyzer="word",
        max_features=4000
    )
    # 取出語料和標(biāo)簽
    x, y = zip(*sentences)
    # 分割數(shù)據(jù)集
    X_train, X_test, y_train, y_test = train_test_split(x, y, random_state=0)
    # 轉(zhuǎn)換為詞袋模型
    vec.fit(X_train)
    print(vec.get_feature_names())
    # 實(shí)例化樸素貝葉斯
    classifier = MultinomialNB()
    classifier.fit(vec.transform(X_train), y_train)
    # 預(yù)測(cè)
    y_predit = classifier.predict(vec.transform(X_test))
    # print(y_predit)
    # print(y_test)
    # 計(jì)算準(zhǔn)確率
    score = classifier.score(vec.transform(X_test), y_test)
    print(score)
if __name__ == '__main__':
    data = pre_process()
    main(data)

輸出結(jié)果:

['!' '"' '#' ... '450' '22549' '22544'] 2627
['報(bào)警人被老公打,請(qǐng)民警到場(chǎng)處理。', '看到上址女子被老公打  持刀 需要救護(hù) (已通知120,如民警到場(chǎng)不需要,請(qǐng)致電120或110)請(qǐng)民警帶好必要的防護(hù)設(shè)備,并且注意自身安全。', '報(bào)警人被老公打,醉酒持刀,(請(qǐng)民警攜帶必要個(gè)人防護(hù)裝備到場(chǎng)處理,并注意自身安全。)', '報(bào)警人被老公打,對(duì)方人在,無需救護(hù),請(qǐng)民警到場(chǎng)處理。', '報(bào)警人稱 被老公打 1人傷 無需120 請(qǐng)民警到場(chǎng)處理。']
['報(bào)警人稱被妻子打,未持械,人傷,無需120,妻子在場(chǎng),請(qǐng)民警注意自身安全,請(qǐng)民警到場(chǎng)處理。', '家暴,稱被其老婆打了,無持械,1人傷無需救護(hù),請(qǐng)民警到場(chǎng)處理。', '報(bào)警人被老婆打,持械,無人傷,請(qǐng)民警到場(chǎng)處理,并注意自身安全。', '家庭糾紛報(bào)警人被老婆打 無需救護(hù),請(qǐng)民警到場(chǎng)處理。', '鬧離婚引發(fā)被老婆打,無持械,人無傷,請(qǐng)民警到場(chǎng)處理。']
['報(bào)警人被兒子打,無人傷,請(qǐng)民警到場(chǎng)處理。', '報(bào)警人稱被兒子打 請(qǐng)民警到場(chǎng)處理。(內(nèi)線:22649)', '報(bào)警人被兒子打 無人傷,無持械, 請(qǐng)民警攜帶必要防護(hù)裝備并注意自身安全。', '報(bào)警人被兒子打,請(qǐng)民警到場(chǎng)處理', '報(bào)警人稱被兒子打,人輕傷(一人傷),無持械。請(qǐng)民警攜帶必要的防護(hù)設(shè)備,并注意自身安全 請(qǐng)民警到場(chǎng)處理。']
['報(bào)警人稱 被女兒打,1人傷 無需120,請(qǐng)民警到場(chǎng)處理。', '報(bào)警人被女兒打,因家庭糾紛,對(duì)方離開,請(qǐng)民警攜帶必要的防護(hù)設(shè)備,并注意自身安全。', '報(bào)警人被女兒打,無持械,請(qǐng)民警到場(chǎng)處理。', '報(bào)警人稱被女兒打,無持械,人無事,請(qǐng)民警到場(chǎng)處理。請(qǐng)攜帶必要的防護(hù)裝備,并請(qǐng)注意自身安全。', '報(bào)警人稱其老婆被女兒打,無持械,人未傷,請(qǐng)民警到場(chǎng)處理。']
[('報(bào)警 老公 民警 到場(chǎng)', 0), ('上址 老公 持刀 救護(hù) 通知 民警 到場(chǎng) 致電 民警 防護(hù) 設(shè)備', 0)]
[('報(bào)警 人稱 妻子 持械 人傷 無需 妻子 在場(chǎng) 民警 民警 到場(chǎng)', 1), ('家暴 老婆 持械 人傷 無需 救護(hù) 民警 到場(chǎng)', 1)]
[('報(bào)警 兒子 無人 民警 到場(chǎng)', 2), ('報(bào)警 人稱 兒子 民警 到場(chǎng)', 2)]
[('報(bào)警 人稱 女兒 人傷 無需 民警 到場(chǎng)', 3), ('報(bào)警 女兒 家庭 糾紛 離開 民警 攜帶 防護(hù) 設(shè)備', 3)]
['aa67c3', 'q5', '一人', '一人傷', '一名', '一拳', '一樓', '一輛', '丈夫', '上址', '不上', '不住', '不倒翁', '不明', '不清', '不用', '不行', '不讓', '不詳', '不通', '不需', '東西', '中斷', '中有', '中稱', '豐路', '乒乓', '九亭', '九涇路', '爭(zhēng)吵', '亞美尼亞人', '人代報(bào)', '人傷', '人借', '人頭', '人手', '人無事', '人無傷', '人未傷', '人稱', '人系', '代為', '代報(bào)', '休假', '傷及', '住戶', '保安', '保溫瓶', '做好', '催促', '催問', '兒子', '兒稱', '充電器', '公交車站', '公分', '公路', '關(guān)在', '關(guān)機(jī)', '其稱', '其近', '具體地址', '沖突', '幾天', '凳子', '出血', '出軌', '分處', '分局', '分已', '分所處', '分鐘', '剛剛', '到場(chǎng)', '前妻', '剪刀', '割傷', '加拿大', '區(qū)劃', '醫(yī)治', '醫(yī)院', '十一', '臥室', '衛(wèi)生局', '去過', '又稱', '反打', '反鎖', '發(fā)生', '受傷', '變更', '口角', '口齒不清', '后往', '告知', '咬傷', '咱不需', '啤酒瓶', '喉嚨', '喊救命', '喜泰路', '喝酒', '嘴唇', '回到', '回去', '回家', '回來', '在場(chǎng)', '在家', '地上', '地址', '坐在', '處置', '處警', '夏夢(mèng)靄', '外傷', '外國人', '外面', '多歲', '大橋', '大理石', '大礙', '夫妻', '頭上', '頭傷', '頭暈', '頭痛', '頭部', '奧迪', '女兒', '婦女', '媽媽', '妹妹', '妻子', '威脅', '婚外情', '嬰兒', '媳婦', '孫女', '孤老', '定位', '家中', '家庭', '家庭成員', '家庭暴力', '家暴', '家門', '對(duì)峙', '對(duì)象', '將門', '小區(qū)', '小姑', '小孩', '尾號(hào)', '居委', '居委會(huì)', '居民', '岳母', '工作', '工作人員', '工具', '工號(hào)', '已處', '市場(chǎng)', '并稱', '座機(jī)', '開門', '異地', '弄口', '引發(fā)', '弟弟', '當(dāng)事人', '得知', '必備', '懷孕', '急救車', '情況', '情況不明', '情緒', '情節(jié)', '成功', '手上', '手持', '手指', '手機(jī)', '手機(jī)號(hào)', '手痛', '手部', '手里', '打人', '打傷', '打倒', '打其', '打打', '打架', '打死', '打電話', '打破', '打耳光', '打請(qǐng)', '掃帚', '抓傷', '報(bào)稱', '報(bào)警', '擔(dān)子', '拖鞋', '攔不住', '拿出', '拿到', '拿尺', '拿長', '拿鞋', '持刀', '持械', '持續(xù)', '持飯', '掐著', '接電話', '控制', '措施', '攜帶', '放下', '放到', '救命', '救護(hù)', '救護(hù)車', '無人', '無礙', '無需', '早上', '昨天', '暫時(shí)', '有傷', '有刀', '木棍', '殺人', '村里', '來電', '杯子', '松江', '桌上', '梅隴', '棍子', '棒頭', '椅子', '樓上', '榔頭', '此警', '武器', '武器裝備', '殘疾人', '母親', '母子', '毛巾', '民警', '水壺', '水果刀', '求助', '沈楊', '沒事', '滬牌', '注意安全', '活動(dòng)室', '派出所', '流血', '浦東', '激動(dòng)', '煙缸', '燒紙', '照片', '爬不起來', '父親', '父女', '牙齒', '物業(yè)公司', '物品', '玩具', '現(xiàn)人', '現(xiàn)刀', '現(xiàn)場(chǎng)', '現(xiàn)稱', '現(xiàn)要', '現(xiàn)跑', '玻璃', '瓶子', '用具', '用腳', '電告', '電線', '電視機(jī)', '電話', '疑似', '疾病', '白色', '皮帶', '盒子', '相關(guān)', '看不見', '眼睛', '矛盾', '砍刀', '砸壞', '確認(rèn)', '離去', '離婚', '離開', '離異', '稱其', '稱屬', '稱有', '稱現(xiàn)', '稱要', '稍后', '窗口', '竹棍', '等候', '等同', '筷子', '精神', '精神病', '糾紛', '經(jīng)濟(jì)糾紛', '翟路', '翟路紀(jì)', '老人', '老伯伯', '老伴', '老公', '老北', '老大爺', '老太', '老太太', '老頭', '老婆', '老年', '聯(lián)系電話', '肋骨', '肯德基', '脖子', '臉盆', '自動(dòng)', '自殘', '自稱', '自行', '致電', '英語翻譯', '菜刀', '虐待', '螺絲刀', '衣服', '衣架', '補(bǔ)充', '裝備', '裝機(jī)', '西門', '解釋', '警衛(wèi)室', '警察', '設(shè)備', '詢問', '該戶', '賭博', '走后', '趕出來', '起因', '路人報(bào)', '路邊', '路近', '身上', '轉(zhuǎn)接', '輕傷', '輕微傷', '轎車', '辛耕路', '過場(chǎng)', '過警', '過顧', '還稱', '進(jìn)屋', '追其', '逃出來', '逃逸', '通知', '通話', '鄰居', '酒瓶', '醉酒', '鑰橋', '鐵棍', '鐵質(zhì)', '鎖事', '鍋鏟', '錘子', '門衛(wèi)', '門衛(wèi)室', '門口', '門外', '門崗', '閔行', '防護(hù)', '阿姨', '陳路', '隔壁', '鞋子', '韓國', '項(xiàng)鏈', '驗(yàn)傷', '骨折', '黑色', '鼻子', '龍州', '龍舟']
C:\Users\Windows\Anaconda3\lib\site-packages\sklearn\feature_extraction\image.py:167: DeprecationWarning: `np.int` is a deprecated alias for the builtin `int`. To silence this warning, use `int` by itself. Doing this will not modify any behavior and is safe. When replacing `np.int`, you may wish to use e.g. `np.int64` or `np.int32` to specify the precision. If you wish to review your current use, check the release note link for additional information.
Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
  dtype=np.int):
Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\Windows\AppData\Local\Temp\jieba.cache
Loading model cost 0.922 seconds.
Prefix dict has been built successfully.
1.0
Process finished with exit code 0

準(zhǔn)確率基本為 100%. 媽媽再也不同擔(dān)心我被家暴啦!

以上就是Python機(jī)器學(xué)習(xí)NLP自然語言處理基本操作家暴歸類的詳細(xì)內(nèi)容,更多關(guān)于NLP自然語言處理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python?+?Tkinter連接本地MySQL數(shù)據(jù)庫簡(jiǎn)單實(shí)現(xiàn)注冊(cè)登錄

    Python?+?Tkinter連接本地MySQL數(shù)據(jù)庫簡(jiǎn)單實(shí)現(xiàn)注冊(cè)登錄

    這篇文章主要介紹了Python?+?Tkinter連接本地MySQL數(shù)據(jù)庫簡(jiǎn)單實(shí)現(xiàn)注冊(cè)登錄。下面文章著情介紹,需要的小伙伴可以參考一下
    2022-01-01
  • Python簡(jiǎn)單定義與使用二叉樹示例

    Python簡(jiǎn)單定義與使用二叉樹示例

    這篇文章主要介紹了Python簡(jiǎn)單定義與使用二叉樹,結(jié)合實(shí)例形式分析了Python定義二叉樹及節(jié)點(diǎn)插入相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • Pandas中兩個(gè)dataframe的交集和差集的示例代碼

    Pandas中兩個(gè)dataframe的交集和差集的示例代碼

    這篇文章主要介紹了Pandas中兩個(gè)dataframe的交集和差集的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • django使用channels實(shí)現(xiàn)通信的示例

    django使用channels實(shí)現(xiàn)通信的示例

    這篇文章主要介紹了django使用channels實(shí)現(xiàn)通信的示例,幫助大家更好的理解和學(xué)習(xí)django框架,感興趣的朋友可以了解下
    2020-10-10
  • python命令行參數(shù)argparse模塊基本用法詳解

    python命令行參數(shù)argparse模塊基本用法詳解

    argparse?是python自帶的命令行參數(shù)解析包,可以用來方便地讀取命令行參數(shù),這篇文章主要介紹了python命令行參數(shù)-argparse模塊基本用法,需要的朋友可以參考下
    2023-01-01
  • python使用RNN實(shí)現(xiàn)文本分類

    python使用RNN實(shí)現(xiàn)文本分類

    這篇文章主要為大家詳細(xì)介紹了python使用RNN進(jìn)行文本分類,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • 教你如何在Pycharm中導(dǎo)入requests模塊

    教你如何在Pycharm中導(dǎo)入requests模塊

    這篇文章主要介紹了教你如何在Pycharm中導(dǎo)入requests模塊,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • 通過代碼實(shí)例了解Python sys模塊

    通過代碼實(shí)例了解Python sys模塊

    這篇文章主要介紹了通過代碼實(shí)例了解Python sys模塊,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Django url 路由匹配過程詳解

    Django url 路由匹配過程詳解

    這篇文章主要介紹了Django url 路由匹配過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 使用Python的Dataframe取兩列時(shí)間值相差一年的所有行方法

    使用Python的Dataframe取兩列時(shí)間值相差一年的所有行方法

    今天小編就為大家分享一篇使用Python的Dataframe取兩列時(shí)間值相差一年的所有行方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07

最新評(píng)論