• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于NLTK的中文文本內(nèi)容抽取方法①

    2019-01-18 08:30:42劉衛(wèi)國
    關(guān)鍵詞:用詞分詞語料庫

    李 晨, 劉衛(wèi)國

    (中南大學(xué) 信息科學(xué)與工程學(xué)院, 長沙 410083)

    NLTK的默認(rèn)處理對象是英文文本, 處理中文文本存在一定的局限性, 主要體現(xiàn)在以下兩點(diǎn):

    (1) NLTK素材語料庫中缺少中文語料庫, 在NLTK模塊中包含數(shù)十種完整的語料庫, 例如布朗語料庫、古騰堡語料庫等, 但沒有中文語料庫. 另外, NLTK也沒有中文停用詞語料庫, 在文本預(yù)處理中, 特別是在進(jìn)行頻率統(tǒng)計(jì)之前需要使用停用詞語料庫對文本進(jìn)行過濾清洗, NLTK沒有提供針對中文的停用詞庫, 使用針對英文的過濾方法是無法完成中文文本的停詞過濾.

    (2)在英文文本中, 文本的分割可以由單詞之間的空格完成, 但是中文文本的分割依靠NLTK是無法完成的, 中文分詞工作需要借助分詞工具來完成, 已有的一些中文分詞工具有結(jié)巴分詞(jieba)、斯坦福中文分詞器等.

    本文應(yīng)用NLTK對中文文本進(jìn)行信息抽取.

    1 NLTK文本內(nèi)容抽取框架

    使用NLTK對自然語言文本中詞句內(nèi)容進(jìn)行提取與分析, 可以概括為篩選、提取、統(tǒng)計(jì)、解釋的過程[1,2]. 抽取方法首先對其中無實(shí)際含義的詞匯進(jìn)行篩選過濾, 使用概率統(tǒng)計(jì)方法提取出高頻詞集, 接著識別出文本的關(guān)鍵詞, 選定研究詞匯. 以該詞匯作為目標(biāo)詞,查找其所在的句子, 對段落、篇章內(nèi)的詞匯進(jìn)行計(jì)數(shù)統(tǒng)計(jì)與篇章分析, 解釋文本內(nèi)容與研究問題. 為此將以上過程簡化為三個階段, 分別是預(yù)處理、分析以及輸出階段, 如圖1所示.

    圖1 NLTK抽取框架

    1.1 預(yù)處理階段

    預(yù)處理階段是確定文本并對文本進(jìn)行簡單處理的過程, 預(yù)處理方法主要有分塊與分詞、清洗過濾. 分塊與分詞是對文本進(jìn)行切分的操作, 由于分析階段各方法調(diào)用對象的不同, 文本需要劃分成不同子單位的文本, 例如以詞為最小單位的文本、以句為最小單位的文本. 清洗過濾是對文本分詞處理后刪去文本中無實(shí)際意義的詞匯符號的過程.

    1.2 分析階段

    分析階段是抽取過程的核心, 涉及到文本的一系列處理操作. 文本經(jīng)預(yù)處理階段以詞、句、篇章為基本單位進(jìn)行切分后, 在這三個維度上使用不同的分析方法. 經(jīng)分詞處理后, 針對單個詞匯進(jìn)行的操作有雙連詞提取、同語境詞提取. 在單個句子上可執(zhí)行的操作有詞性標(biāo)注、句法分析. 在篇章中可以進(jìn)行篇章分析[3]與統(tǒng)計(jì)分析, 其中統(tǒng)計(jì)分析是最常使用的工具. 例如,在對布朗語料庫[4]的研究中, 以概率統(tǒng)計(jì)的方法得到不同文體中情態(tài)動詞的頻率分布, 歸納總結(jié)出情態(tài)動詞在文體中的分布規(guī)律, 從而對文本的文體進(jìn)行判斷.

    1.3 輸出階段

    文本的抽取結(jié)果分為兩大類, 一類是將提取出詞與句子等結(jié)果作為原始依據(jù), 對文本內(nèi)容含義進(jìn)行解釋; 第二類是以可視化的形式展示數(shù)據(jù)結(jié)果, 更加直觀地體現(xiàn)詞匯頻率的對比.

    2 NLTK對文本的處理方法

    2.1 預(yù)處理方法

    2.1.1 對原始文本分詞與分句

    在NLTK中, 分詞分句操作可以將文本處理成可以單獨(dú)調(diào)用的詞或句子. 分詞是將句子序列或字符串構(gòu)成的文本劃分成單個的詞. 分句是將文本中的篇章段落劃分成單個的句子. 使用nltk.word_tokenize()、nltk.sent_tokenize()進(jìn)行分詞與分句操作. 分詞處理后文本中的詞匯、符號轉(zhuǎn)化為單一標(biāo)識符, 這是進(jìn)行后續(xù)分析工作的關(guān)鍵.

    2.1.2 對原始文本進(jìn)行清洗過濾

    清洗與過濾實(shí)際上是一個分類的過程, 使用正則表達(dá)式匹配需要過濾掉的數(shù)字與符號, 對文檔中的純文本內(nèi)容進(jìn)行提取. 然后, 利用停用詞語料庫對文本實(shí)現(xiàn)過濾, 停用詞語料庫中包含無實(shí)際意義的高頻詞匯,例如 a, to 等.

    以下的命令定義了一個過濾英文停用詞的函數(shù),將文本中的詞匯歸一化處理為小寫并提取, 從停用詞語料庫中提取出英語停用詞, 使用詞匯運(yùn)算符將文本進(jìn)行區(qū)分.

    2.2 分析方法

    2.2.1 同語境詞查找

    NLTK中使用函數(shù)similar()查找與目標(biāo)詞匯出現(xiàn)在相似上下文位置的詞, 即在文本中可用作替換的詞匯.在《白鯨記》中使用text.similar("captain")找到以下同語境詞: whale ship sea boat deck world other. 可以發(fā)現(xiàn)得到的詞匯與目標(biāo)詞匯詞性均為名詞.

    2.2.2 統(tǒng)計(jì)分析

    概率統(tǒng)計(jì)作為最常用的數(shù)學(xué)分析手段, 用于文本中數(shù)據(jù)的處理分析. 在Python中借助NLTK頻率分布類中的函數(shù), 對文本中出現(xiàn)的單詞、搭配、常用表達(dá)、符號進(jìn)行頻率統(tǒng)計(jì)、長度計(jì)算等相關(guān)操作, 使用fdist= nltk.FreqDist()對研究文本創(chuàng)建頻率分布, 函數(shù)fdist['target word']查找頻率分布內(nèi)目標(biāo)詞匯的出現(xiàn)次數(shù), fdist. most_common(n)從頻率分布中提取出高頻詞匯, 其中參數(shù)n為提取詞匯的數(shù)量.

    2.2.3 篇章分析

    對篇章內(nèi)容的分析也是使用NLTK對文本內(nèi)容進(jìn)行抽取的方法之一. 布朗語料庫以文體作為分類標(biāo)準(zhǔn).根據(jù)這一特點(diǎn), 利用布朗語料庫探索詞匯在不同文體中的使用情況. 使用條件概率的方法, 選擇布朗語料庫中6個不同的文體類型分別統(tǒng)計(jì)wh-詞的使用情況. 命令如下:

    命令執(zhí)行后, 以表格的形式打印所得結(jié)果如圖2所示.

    圖2 頻率統(tǒng)計(jì)結(jié)果

    從結(jié)果上來看, 在religion與news文體中which和who出現(xiàn)次數(shù)較多, hobbies文體中when、which、who出現(xiàn)較多, 而在science_fiction與humor文體中wh-詞出現(xiàn)的次數(shù)較為均勻, 在romance文體中what、when、which出現(xiàn)次數(shù)較多. 使用條件概率的方法找到文體中同類型詞使用差異, 以表格的形式展示結(jié)果[5].

    抽取過程中疊加使用分析方法, 將獲得的結(jié)果作為分析的原始素材進(jìn)行二次加工處理.

    2.3 輸出方法

    利用Python的第三方圖表模塊對數(shù)據(jù)進(jìn)行二次處理. Matplotlib是Python中用于可視化處理的模塊,該模塊對結(jié)構(gòu)化數(shù)據(jù)繪制統(tǒng)計(jì)圖表, 例如柱狀圖、扇形圖、折線圖、直方圖等圖形[6]. 導(dǎo)入Matploylib庫,并引入上一階段獲得的數(shù)據(jù). 函數(shù)fdist.plot(n, cumulative=True/False)在建立概率分布的基礎(chǔ)上對統(tǒng)計(jì)結(jié)果繪制頻率折線圖, 其中參數(shù)n表示折線圖展示的詞匯數(shù), cumulative表示是否對統(tǒng)計(jì)結(jié)果逐詞累加. 經(jīng)函數(shù)text.dispersion_plot()處理后獲得離散圖, 橫坐標(biāo)為文本詞匯排序, 縱坐標(biāo)為研究詞匯, 詞匯對應(yīng)的每一行代表整個文本, 一行中的一條豎線表示一個單詞, 以豎線的排列表示詞匯在文本中的位置.

    3 實(shí)證分析

    以2018年政府工作報告為案例素材進(jìn)行分析. 在網(wǎng)絡(luò)上通過爬蟲工具得到2018年政府工作報告, 總字?jǐn)?shù)為20 257. 根據(jù)本文提出的方法步驟, 使用NLTK對文本內(nèi)容進(jìn)行抽取.

    3.1 方法描述

    對目標(biāo)素材所在網(wǎng)頁進(jìn)行內(nèi)容提取. 使用Scrapy獲取網(wǎng)頁上的報告內(nèi)容, Scrapy是用于獲取網(wǎng)頁內(nèi)容的Python第三方模塊, 多用于爬取網(wǎng)頁上的圖片以及結(jié)構(gòu)化的文本內(nèi)容. 將爬取得到的文本內(nèi)容保存在txt文件中, 過濾文本中的標(biāo)點(diǎn)符號、數(shù)字與停用詞等.以目標(biāo)詞匯為中心進(jìn)行二次分析, 使用到同語境詞查找, 雙連詞查找等方法. 使用概率統(tǒng)計(jì)對高頻出現(xiàn)的詞匯進(jìn)行查找輸出, 最后以折線圖、離散圖等可視化的形式展示結(jié)果. 實(shí)例分析流程如圖3所示.

    在預(yù)處理階段, 使用正則表達(dá)式清理爬取內(nèi)容中的符號、數(shù)字以及英文字母, 保留中文文本. join(re.findall(r'[u4e00-u9fa5]', raw_text)). 采用 Jieba 中文分詞工具對中文文本分詞jieba.lcut().

    分析階段查找 “民生” 所在的句子以及查找與 “發(fā)展” 位于相同位置的詞匯:

    3.2 結(jié)果展示

    應(yīng)用matplotlib對結(jié)果進(jìn)行可視化, 輸出離散圖展示不同高頻詞在文本中的位置:

    text.dispersion_plot(['經(jīng)濟(jì)','企業(yè)','工作','社會'])

    輸出離散圖展示“經(jīng)濟(jì)”, “企業(yè)”, “工作”, “社會” 四個詞在文本中的位置, 結(jié)果如圖4所示.

    對去除停用詞后的文本, 進(jìn)行頻率統(tǒng)計(jì). 將前20個高頻詞以折線圖的形式輸出, 結(jié)果如圖5所示.

    在中文文本的分析中, 出現(xiàn)可視化結(jié)果無法顯示中文的問題, 對此解決的方法是增加部分代碼, 指定默認(rèn)中文字體. 命令如下.

    圖3 實(shí)例驗(yàn)證流程圖

    圖4 展示不同詞在文本中的位置

    圖5 前20個高頻詞折線圖

    3.3 分析與啟示

    從概率統(tǒng)計(jì)的結(jié)果中, 發(fā)現(xiàn)提取出的詞匯具有兩個特征: 集中在名詞與形容詞; 詞匯含義與文本主題相關(guān). 從離散圖 (圖 4)來看, “經(jīng)濟(jì)” 一詞的在全文中不同位置均有出現(xiàn), 且在前一部分相對集中分布; “社會”一詞在報告的全文中均勻分布, 可以看出關(guān)注社會、關(guān)注經(jīng)濟(jì)體現(xiàn)在整篇工作報告當(dāng)中. 對比 “改革”與 “社會”, 可以發(fā)現(xiàn)“改革”的出現(xiàn)頻度超過“社會”, 也印證了圖5的頻率統(tǒng)計(jì)結(jié)果. 在高頻折線圖中(圖5)排在前兩位的詞是“發(fā)展” 以及“改革”, 這與“進(jìn)一步深化改革”保持一致; 在前十個高頻詞中“經(jīng)濟(jì)”作為出現(xiàn)次數(shù)最多的名詞, 也說明了經(jīng)濟(jì)的重要性. 在報告抽取結(jié)果中找到了反映政府工作報告的語料內(nèi)容, 達(dá)到了理解語料庫的目的.

    4 結(jié)束語

    由于中英文文本有不同的分詞方法, 使得NLTK在中文文本處理上存在不足, 中文文本不能通過簡單的字符分隔來達(dá)到語義分隔的目的, 需要由分詞工具來完成, 并且可能存在歧義.

    本文加入爬蟲工具與NLTK協(xié)同作用, 對爬蟲得到的文本使用分詞工具、正則表達(dá)式完成對中文文本中詞匯與句子等內(nèi)容的預(yù)處理工作, 并在NLTK中完成對中文文本的統(tǒng)計(jì)與分析, 抽取出與主題相關(guān)的文本內(nèi)容, 實(shí)現(xiàn)NLTK對中文文本上的處理, 達(dá)到對中文文本信息抽取的目的.

    猜你喜歡
    用詞分詞語料庫
    需注意的規(guī)范醫(yī)學(xué)用詞
    強(qiáng)化詩詞用詞的時代性
    中華詩詞(2022年2期)2022-12-31 05:57:58
    蒼涼又喧囂:《我與地壇》中的用詞
    《語料庫翻譯文體學(xué)》評介
    結(jié)巴分詞在詞云中的應(yīng)用
    智富時代(2019年6期)2019-07-24 10:33:16
    寫話妙計(jì)之用詞準(zhǔn)確
    把課文的優(yōu)美表達(dá)存進(jìn)語料庫
    值得重視的分詞的特殊用法
    基于JAVAEE的維吾爾中介語語料庫開發(fā)與實(shí)現(xiàn)
    語言與翻譯(2015年4期)2015-07-18 11:07:45
    高考分詞作狀語考點(diǎn)歸納與疑難解析
    广宁县| 闻喜县| 西乌| 铁岭市| 重庆市| 泾源县| 延寿县| 苏尼特左旗| 南川市| 思南县| 太谷县| 双城市| 灵台县| 宣汉县| 凯里市| 筠连县| 南雄市| 永兴县| 枝江市| 赤壁市| 修水县| 辉南县| 娄烦县| 雷山县| 南木林县| 宁陵县| 确山县| 乌拉特前旗| 固安县| 香格里拉县| 信阳市| 娄烦县| 徐州市| 尼勒克县| 菏泽市| 西藏| 休宁县| 陆良县| 兴隆县| 瑞昌市| 南充市|