全能NLP工具HarvestText

向AI轉型的程序員都關注了這個號??????
人工智能大數據與深度學習 ?公眾號:datayx
用途
HarvestText是一個專注無(弱)監(jiān)督方法,能夠整合領域知識(如類型,別名)對特定領域文本進行簡單高效地處理和分析的庫。適用于許多文本預處理和初步探索性分析任務,在小說分析,網絡文本,專業(yè)文獻等領域都有潛在應用價值。
使用案例:


【注:本庫僅完成實體分詞和情感分析,可視化使用matplotlib】
近代史綱要信息抽取及問答系統(tǒng)(命名實體識別,依存句法分析,簡易問答系統(tǒng))
本README包含各個功能的典型例子,部分函數的詳細用法可在文檔中找到:
文檔
具體功能如下:
目錄:
基本處理
本庫主要旨在支持對中文的數據挖掘,但是加入了包括情感分析在內的少量英語支持
可以本地保存模型再讀取復用,也可以消除當前模型的記錄。
使用TextTiling算法,對沒有分段的文本自動分段,或者基于已有段落進一步組織/重新分段
把語句中有可能是已知實體的錯誤拼寫(誤差一個字符或拼音)的詞語鏈接到對應實體。
利用統(tǒng)計規(guī)律(或規(guī)則)發(fā)現語料中可能會被傳統(tǒng)分詞遺漏的特殊詞匯。也便于從文本中快速篩選出關鍵詞。
統(tǒng)計特定實體出現的位置,次數等。
通用停用詞,通用情感詞,IT、財經、飲食、法律等領域詞典??芍苯佑糜谝陨先蝿?。
分析語句中各個詞語(包括鏈接到的實體)的主謂賓語修飾等語法關系,
從大量文本中自動識別出實體及其可能別名,直接用于實體鏈接。例子見這里
找到一句句子中的人名,地名,機構名等命名實體。
把別名,縮寫與他們的標準名聯(lián)系起來。
處理URL, email, 微博等文本中的特殊符號和格式,去除所有標點等
可包含指定詞和類別的分詞。充分考慮省略號,雙引號等特殊標點的分句。
精細分詞分句
文本清洗
實體鏈接
命名實體識別
實體別名自動識別(更新!)
依存句法分析
內置資源
信息檢索
新詞發(fā)現
字符拼音糾錯(調整)
自動分段
存取消除
英語支持
高層應用
從三元組中建立知識圖譜并應用于問答,可以定制一些問題模板。效果有待提升,僅作為示例。
利用句法分析,提取可能表示事件的三元組。
基于Textrank, tfidf等算法,獲得一段文本中的關鍵詞
基于Textrank算法,得到一系列句子中的代表性句子。
利用共現關系,獲得關鍵詞之間的網絡?;蛘咭砸粋€給定詞語為中心,探索與其相關的詞語網絡。
給出少量種子詞(通用的褒貶義詞語),得到語料中各個詞語和語段的褒貶度。
情感分析
關系網絡
文本摘要
關鍵詞抽取
事實抽取
簡易問答系統(tǒng)
項目?獲取方式
關注微信公眾號 datayx? 然后回復?HT??即可獲取。
AI項目體驗地址?https://loveai.tech
用法
首先安裝, 使用pip
pip install --upgrade harvesttext或進入setup.py所在目錄,然后命令行:
python setup.py install隨后在代碼中:
from harvesttext import HarvestText
ht = HarvestText()
即可調用本庫的功能接口。
實體鏈接
給定某些實體及其可能的代稱,以及實體對應類型。將其登錄到詞典中,在分詞時優(yōu)先切分出來,并且以對應類型作為詞性。也可以單獨獲得語料中的所有實體及其位置:

采用傳統(tǒng)的分詞工具很容易把“武球王”拆分為“武 球王”
詞性標注,包括指定的特殊類型。

這里把“武球王”轉化為了標準指稱“武磊”,可以便于標準統(tǒng)一的統(tǒng)計工作。
分句:
print(ht.cut_sentences(para))['上港的武磊和恒大的郜林,誰是中國最好的前鋒?', '那當然是武磊武球王了,他是射手榜第一,原來是弱點的單刀也有了進步']
如果手頭暫時沒有可用的詞典,不妨看看本庫內置資源中的領域詞典是否適合你的需要。
如果同一個名字有多個可能對應的實體("打球的李娜和唱歌的李娜不是一個人"),可以設置keep_all=True來保留多個候選,后面可以再采用別的策略消歧,見el_keep_all()
如果連接到的實體過多,其中有一些明顯不合理,可以采用一些策略來過濾,這里給出了一個例子filter_el_with_rule()
本庫能夠也用一些基本策略來處理復雜的實體消歧任務(比如一詞多義【"老師"是指"A老師"還是"B老師"?】、候選詞重疊【xx市長/江yy?、xx市長/江yy?】)。具體可見linking_strategy()
文本清洗
可以處理文本中的特殊字符,或者去掉文本中不希望出現的一些特殊格式。
包括:微博的@,表情符;網址;email;html代碼中的?一類的特殊字符;網址內的%20一類的特殊字符;繁體字轉簡體字
例子如下:



情感分析
本庫采用情感詞典方法進行情感分析,通過提供少量標準的褒貶義詞語(“種子詞”),從語料中自動學習其他詞語的情感傾向,形成情感詞典。對句中情感詞的加總平均則用于判斷句子的情感傾向:

如果沒想好選擇哪些詞語作為“種子詞”,本庫中也內置了一個通用情感詞典內置資源,在不指定情感詞時作為默認的選擇,也可以根據需要從中挑選。
默認使用的SO-PMI算法對于情感值沒有上下界約束,如果需要限制在[0,1]或者[-1,1]這樣的區(qū)間的話,可以調整scale參數,例子如下:


信息檢索
可以從文檔列表中查找出包含對應實體(及其別稱)的文檔,以及統(tǒng)計包含某實體的文檔數。使用倒排索引的數據結構完成快速檢索。

關系網絡
(使用networkx實現) 利用詞共現關系,建立其實體間圖結構的網絡關系(返回networkx.Graph類型)。可以用來建立人物之間的社交網絡等。


劉關張之情誼,劉備投奔的靠山,以及劉備討賊之經歷盡在于此。
文本摘要
(使用networkx實現) 使用Textrank算法,得到從文檔集合中抽取代表句作為摘要信息,可以設置懲罰重復的句子,也可以設置字數限制(maxlen參數):

關鍵詞抽取
目前提供包括textrank和HarvestText封裝jieba并配置好參數和停用詞的jieba_tfidf(默認)兩種算法。
示例(完整見example):

新詞發(fā)現
從比較大量的文本中利用一些統(tǒng)計指標發(fā)現新詞。(可選)通過提供一些種子詞語來確定怎樣程度質量的詞語可以被發(fā)現。(即至少所有的種子詞會被發(fā)現,在滿足一定的基礎要求的前提下。)

自動分段
使用TextTiling算法,對沒有分段的文本自動分段,或者基于已有段落進一步組織/重新分段。

與原始論文中不同,這里以分句結果作為基本單元,而使用不是固定數目的字符,語義上更加清晰,且省去了設置參數的麻煩。因此,默認設定下的算法不支持沒有標點的文本。但是可以通過把seq_chars設置為一正整數,來使用原始論文的設置,為沒有標點的文本來進行分段,如果也沒有段落換行,請設置align_boundary=False。例見examples/basic.py中的cut_paragraph():

存取消除
可以本地保存模型再讀取復用,也可以消除當前模型的記錄。

簡易問答系統(tǒng)
具體實現及例子在naiveKGQA.py中,下面給出部分示意:

閱讀過本文的人還看了以下文章:
基于40萬表格數據集TableBank,用MaskRCNN做表格檢測
《深度學習入門:基于Python的理論與實現》高清中文PDF+源碼
python就業(yè)班學習視頻,從入門到實戰(zhàn)項目
2019最新《PyTorch自然語言處理》英、中文版PDF+源碼
《21個項目玩轉深度學習:基于TensorFlow的實踐詳解》完整版PDF+附書代碼
PyTorch深度學習快速實戰(zhàn)入門《pytorch-handbook》
【下載】豆瓣評分8.1,《機器學習實戰(zhàn):基于Scikit-Learn和TensorFlow》
《Python數據分析與挖掘實戰(zhàn)》PDF+完整源碼
汽車行業(yè)完整知識圖譜項目實戰(zhàn)視頻(全23課)
李沐大神開源《動手學深度學習》,加州伯克利深度學習(2019春)教材
筆記、代碼清晰易懂!李航《統(tǒng)計學習方法》最新資源全套!
【Keras】完整實現‘交通標志’分類、‘票據’分類兩個項目,讓你掌握深度學習圖像分類
如何利用全新的決策樹集成級聯(lián)結構gcForest做特征工程并打分?
Machine Learning Yearning 中文翻譯稿
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
中科院Kaggle全球文本匹配競賽華人第1名團隊-深度學習與特征工程
不斷更新資源
深度學習、機器學習、數據分析、python
?搜索公眾號添加:?datayx??
機大數據技術與機器學習工程
?搜索公眾號添加:?datanlp
長按圖片,識別二維碼
