技术改变生活——用HanLP来协助处理现实中问题
生活随笔
收集整理的這篇文章主要介紹了
技术改变生活——用HanLP来协助处理现实中问题
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?
此例是我之前在學(xué)習(xí)nlp過程中的一個(gè)demo項(xiàng)目,并使用了HanLP官網(wǎng)提供的API接口實(shí)現(xiàn)功能,具體需求如下:
?1 .項(xiàng)目背景
? ? ? ? ?平時(shí)收集了一下客戶對(duì)于餐館的評(píng)價(jià),這些數(shù)據(jù)一方面可以讓每一位用戶清楚地看到每個(gè)商家所提供的服務(wù)質(zhì)量,同時(shí)讓一個(gè)商家也意識(shí)到自己的問題所在。 但是面對(duì)大量的評(píng)論數(shù)據(jù),如何讓一個(gè)用戶或者商家能夠更方便地看到全貌呢? 這就是本項(xiàng)目中需要解決的問題。
目標(biāo)是將這些評(píng)價(jià)數(shù)據(jù)進(jìn)行分類,比如分成滿意或者不滿意,這一類基于用戶評(píng)價(jià)的情感極性分析系統(tǒng),來策劃餐館滿意菜品的推薦、用傾向性分析來幫助商家從大量評(píng)論中挖掘有價(jià)值的信息,更好的認(rèn)識(shí)服務(wù)的特色點(diǎn),不足點(diǎn)。以及提高創(chuàng)收利潤。
?
2 .查看數(shù)據(jù)。評(píng)價(jià)數(shù)據(jù)的抽樣:
可以看到數(shù)據(jù)集中有餐館的id編號(hào),以及對(duì)餐館的評(píng)價(jià)分?jǐn)?shù)(總體評(píng)分、環(huán)境、口味、服務(wù))
?
?
3. 數(shù)據(jù)清洗:
? ? ? ?在語料庫中找到我們感興趣的東西,把不感興趣的、視為噪聲的內(nèi)容清洗掉,比如從網(wǎng)絡(luò)上爬取的亂碼、時(shí)間戳等文本(上面用戶點(diǎn)評(píng)的數(shù)據(jù)已經(jīng)經(jīng)過了數(shù)據(jù)清洗)
4. 分詞:
? ? ? ?中文文本通常是一批短文本或者是長文本,比如:一篇文章摘要、一則簡訊快報(bào)、一個(gè)段落等,一般在此類文本中句子之間的字和詞是連續(xù)的,有一定的含義。但是在我們進(jìn)行文本處理的時(shí)候,更多的希望可以處理文本的粒度為最小的字為單位,所以這個(gè)時(shí)候就需要用到分詞來進(jìn)行對(duì)文本的全部分詞。
? ? ? ?簡單好用的中文分詞利器:HanLP 。HanLP從v1.7版起獨(dú)立運(yùn)作,由自然語義(青島)科技有限公司作為項(xiàng)目主體,主導(dǎo)后續(xù)版本的開發(fā),并擁有后續(xù)版本的版權(quán)。授權(quán)協(xié)議為 Apache License 2.0,可免費(fèi)用做商業(yè)用途。?
? ? ? ?目前HanLP官網(wǎng)測試版注冊(cè)賬號(hào),并可以免費(fèi)調(diào)用API接口,采用了開源HanLP的最新技術(shù),功能完全一致,采用上億文字的通用語料庫訓(xùn)練生成,能夠解決一般情況下大多數(shù)的NLP開發(fā)需要。
? ? ? ?調(diào)用了HanLP的多語言分詞下的標(biāo)準(zhǔn)分詞,
? ? ?該接口返回的是json數(shù)據(jù)格式,使用java函數(shù)進(jìn)行對(duì)用戶點(diǎn)評(píng)數(shù)據(jù)的遍歷分詞,得到結(jié)果如下(滿意+抱怨點(diǎn)評(píng)):
?
?5. 詞性標(biāo)注
? ? ? ?詞性標(biāo)注是為句子中每個(gè)單詞預(yù)測一個(gè)詞性標(biāo)簽的任務(wù),提供詞語的抽象表示,便于進(jìn)行更深層次的文本挖掘處理,無需擔(dān)心新詞發(fā)現(xiàn)、歧義消除等問題。
? ? ? ?設(shè)計(jì)需求如下:考慮使用該接口功能獲得用戶點(diǎn)評(píng)數(shù)據(jù)中的詞性,然后編寫函數(shù)將詞性為形容詞adj的單詞進(jìn)行文本挖掘,再對(duì)這些形容詞語(好古老、復(fù)古、實(shí)惠、略貴、爽口,極其粗魯?shù)?的處理(如進(jìn)行詞頻統(tǒng)計(jì),生成詞云)來對(duì)用戶對(duì)餐館的點(diǎn)評(píng)描述可視化,以此做傾向性分析來改善餐館的服務(wù)質(zhì)量等提升。? ??
?
?
另外詞性標(biāo)注還可以作詞語的消除歧義,有效剔除“噪音“誤導(dǎo),比如對(duì)“他馬上功夫很好”這句話,該模型通過識(shí)別該句話的語境和上下文特征,對(duì)“馬上”二字進(jìn)行分開識(shí)別成“馬n/上l”,而不是識(shí)別成“馬上n”。
?
6. 詞頻統(tǒng)計(jì)(詞云展示)
如上面在詞性標(biāo)注提取到adj形容詞后,對(duì)該用戶點(diǎn)評(píng)數(shù)據(jù)中形容詞進(jìn)行了詞頻的統(tǒng)計(jì),并對(duì)其詞云化展示,得到結(jié)果如下:
7.命名實(shí)體識(shí)別
? ? ? ?命名實(shí)體識(shí)別,是指識(shí)別文本中具有特定意義的實(shí)體,主要包括人名、地名、機(jī)構(gòu)名、專有名詞等,進(jìn)而挖掘各實(shí)體間的關(guān)系。
? ? ? ?設(shè)計(jì)需求如下:嘗試對(duì)用戶點(diǎn)評(píng)文本數(shù)據(jù)中的菜品名稱進(jìn)行命名實(shí)體識(shí)別,然后對(duì)識(shí)別后的菜品名稱進(jìn)行后續(xù)的分析(對(duì)餐廳菜系菜品的推薦、對(duì)現(xiàn)已有的菜品質(zhì)量進(jìn)行評(píng)定審核等)
在對(duì)用戶點(diǎn)評(píng)數(shù)據(jù)進(jìn)行菜品名稱識(shí)別時(shí),HanLP關(guān)于ner接口有
?中國人名識(shí)別、日本人名識(shí)別、機(jī)構(gòu)識(shí)別、地名識(shí)別、音譯人名識(shí)別、深度學(xué)習(xí)命名實(shí)體識(shí)別等,不過對(duì)于菜品名稱的命名實(shí)體標(biāo)注需要對(duì)語料進(jìn)行自定義標(biāo)注,HanLP也提供了中文語料庫標(biāo)注:
?可使用該語料標(biāo)注規(guī)范的進(jìn)行語料標(biāo)注,正確理解NLP中詞性定義。這其中涉及中文環(huán)境中的分詞與詞性內(nèi)容:
標(biāo)注符號(hào)中有14項(xiàng)非常見標(biāo)注符號(hào),包括:“nr”、“ns”、“nt”、“nz”、“m”、“q”、“t”、“r”、“b”、“i”、“L”、“j”、“g”、“x”。如以下人名/nr的標(biāo)注和 成語/i 習(xí)用語/l的標(biāo)注等。
?
? ? ? ?添加自己的用戶點(diǎn)評(píng)生語料數(shù)據(jù)進(jìn)行菜品名稱標(biāo)注:
? ? ? ?進(jìn)入標(biāo)注系統(tǒng):?
? ? ? ?領(lǐng)取設(shè)定的菜品名稱任務(wù):
? ? ? ?進(jìn)入自定義標(biāo)注語料:
?上示意圖中下半部分已經(jīng)使用HanLP標(biāo)注系統(tǒng)自動(dòng)化標(biāo)注完畢,上半部分是可選擇的詞性標(biāo)簽。利用可選擇詞性標(biāo)簽對(duì)下半部分的語句進(jìn)行自定義化標(biāo)注。我對(duì)nz其他專名(菜品名稱)進(jìn)行了語料的標(biāo)注,得到如下符合我要求的自定義語料庫:
?還可以子賬戶標(biāo)注完之后,使用主賬戶進(jìn)行二次審核,進(jìn)行駁回或者通過。
?在審核通過之后即可標(biāo)注為成熟語料庫,對(duì)語料進(jìn)行打包,送入模型訓(xùn)練。
?
?模型訓(xùn)練是HanLP特有的定制化功能服務(wù),無需復(fù)雜的環(huán)境搭建與編程,直接調(diào)用HanLP算法,訓(xùn)練專屬私有模型。
?
?進(jìn)行菜品名稱標(biāo)注模型訓(xùn)練:
在經(jīng)過了調(diào)用虛擬機(jī)訓(xùn)練任務(wù)后,模型訓(xùn)練完畢,在模型管理分欄中得到最新訓(xùn)練的算法模型。
?獲取API功能是將模型生成私有API接口進(jìn)行調(diào)用,只有本賬號(hào)能夠查閱并使用。
? ? ? ?調(diào)用了HanLP的命名實(shí)體識(shí)別API(菜品名稱)接口,對(duì)用戶點(diǎn)評(píng)數(shù)據(jù)進(jìn)行了NER識(shí)別,得到如下的分析結(jié)果:
對(duì)
慕斯蛋糕甜而不膩好吃!!燒雞飯的雞肉很香!!愛了愛了得到"nature":"food"的命名實(shí)體識(shí)別結(jié)果:? ?慕斯蛋糕? ? ?、? 燒雞飯 。
編寫函數(shù)依次對(duì)用戶點(diǎn)評(píng)數(shù)據(jù)進(jìn)行輸入,調(diào)用HanLP API接口來進(jìn)行命名實(shí)體識(shí)別可以很方便快捷的對(duì)所需要的實(shí)體進(jìn)行識(shí)別,列出了用戶點(diǎn)評(píng)數(shù)據(jù)中某料理店的菜品名稱如下:
不同于常規(guī)的人名、地名、機(jī)構(gòu)名的實(shí)體,使用HanLP進(jìn)行了自定義化的NER命名實(shí)體識(shí)別,這樣做可以更有效的個(gè)性化定制提取,還可以對(duì)此類菜品名稱后續(xù)進(jìn)行更多的下游任務(wù)如餐廳菜系菜品的推薦,對(duì)餐廳菜品營銷的策略等等。當(dāng)然,還可以對(duì)醫(yī)療文本數(shù)據(jù)中的藥品名、疾病名、醫(yī)療器械名等進(jìn)行個(gè)性化NER命名實(shí)體識(shí)別。
8.依存句法分析
? ? ? ? 依存句法分析是識(shí)別語句中詞與詞之間的依存關(guān)系,并揭示其句法結(jié)構(gòu),包括主謂關(guān)系、動(dòng)賓關(guān)系、核心關(guān)系等。
? ? ? ? 設(shè)計(jì)需求如下:根據(jù)目標(biāo)提取用戶評(píng)價(jià),作為此系統(tǒng)的使用者-餐廳管理經(jīng)營者,因?yàn)橛脩粼u(píng)價(jià)是多維度的,比起一個(gè)大體的評(píng)價(jià),商家更希望獲得一些更加具體的信息,比如商家想獲得用戶對(duì)新來的蛋糕面點(diǎn)師傅手藝看法,明天想獲取用戶對(duì)餐廳服務(wù)員服務(wù)態(tài)度的評(píng)價(jià)等,這類更多細(xì)節(jié)具體的信息。
? ? ? ? ?以上這類更加細(xì)節(jié)具體的用戶數(shù)據(jù),可以通過依存句法分析從技術(shù)上實(shí)現(xiàn),如:這家店 的 甜點(diǎn) 真不錯(cuò) 并且 小姐姐的服務(wù)態(tài)度很熱情 。? ? ? ?使用依存句法分析后可以根據(jù)aspect來切分目標(biāo)提取用戶評(píng)價(jià),?
? 如果aspect==甜點(diǎn), 分析結(jié)果就獲得? ?[ /K ,這家/L ,店/E ,的/L ,甜點(diǎn)/A ,真/K ,不錯(cuò)/A , /A]? ? ? 甜點(diǎn) - 不錯(cuò) 。
??如果aspect==服務(wù)??分析結(jié)果就獲得? ?[ /K ,小姐姐/K ,的/L ,服務(wù)/L ,態(tài)度/L ,很/L ,熱情/L , /A]? ? 服務(wù)態(tài)度?- 熱情?
得到詞與詞之間的依存關(guān)系,并從其中獲取到之間的結(jié)構(gòu)聯(lián)系。
調(diào)用了HanLP依存句法分析API接口后通過分析得到如下結(jié)果:
? ? ? ? ?最終得到? ?甜品- 不錯(cuò)? 、? 服務(wù)態(tài)度 - 熱情 此類具體的用戶評(píng)價(jià)信息,為商家了解生意產(chǎn)品提供直觀性說明。
9.情感分析
? ? ? ? ?文本分類的應(yīng)用場景非常廣泛,常見的情感分析是其一個(gè)子集,涵蓋垃圾郵件過濾、垃圾評(píng)論過濾、自動(dòng)標(biāo)簽,輿情分析、改進(jìn)服務(wù)及產(chǎn)品、了解用戶的體驗(yàn)等任何需要自動(dòng)歸檔文本的場合。
? ? ? ? ?設(shè)計(jì)需求如下:用戶的評(píng)論是商家服務(wù)質(zhì)量的反饋,如何在大量的評(píng)論數(shù)據(jù)中幫助商家意識(shí)到自己的問題,提高用戶的滿意度具有經(jīng)濟(jì)價(jià)值,這就是本博客中嘗試解決的問題。使用HanLP接口做詞性標(biāo)注、命名實(shí)體識(shí)別,最終搭建一套基于用戶評(píng)價(jià)的情感分類系統(tǒng),以期幫助商家從大量評(píng)論中挖掘有價(jià)值的信息,更好的認(rèn)識(shí)服務(wù)的特色點(diǎn),不足點(diǎn)。
同樣的HanLP提供了更為方便系統(tǒng)的情感分析API調(diào)用。
? ? ?在進(jìn)行情感分析輸入數(shù)據(jù)之前要對(duì)文本數(shù)據(jù)進(jìn)行分詞、詞性標(biāo)注、命名實(shí)體識(shí)別、依存句法分析管道式操作。以上已經(jīng)對(duì)用戶評(píng)價(jià)數(shù)據(jù)進(jìn)行了處理,對(duì)用戶評(píng)價(jià)數(shù)據(jù)中抽取樣例,
這家店 的 甜點(diǎn) 真不錯(cuò) 并且 小伙子的服務(wù)態(tài)度很熱情 。調(diào)用HanLP情感分析API后,得到如下結(jié)果:
這家店 的 甜點(diǎn) 真不錯(cuò) 并且 小伙子的服務(wù)態(tài)度很熱情 。? ? ?情感極性是 【正面】
什么服務(wù)態(tài)度,點(diǎn)餐半個(gè)小時(shí)才上菜,下次再也不來吃了。? 情感極性是 【負(fù)面】
?顯然的,對(duì)于情感分析模型HanLP已經(jīng)訓(xùn)練好,只需要將用戶評(píng)價(jià)的數(shù)據(jù)作為輸入,輸出值即正負(fù)情感極性,對(duì)于商家收取到的用戶平均數(shù)據(jù)時(shí),可調(diào)用該API接口做正負(fù)極性的二分類數(shù)據(jù),將正面評(píng)價(jià)數(shù)據(jù)進(jìn)行數(shù)據(jù)挖掘分析,對(duì)用戶點(diǎn)贊的內(nèi)容繼續(xù)推廣、? 將負(fù)面評(píng)價(jià)的數(shù)據(jù)分析后,對(duì)用戶提出的意見內(nèi)容進(jìn)行整改,同時(shí)也意識(shí)到自己的問題所在。
?
10.總結(jié)和思考
? ? ? 1.? 在處理此項(xiàng)目需求時(shí),考慮面對(duì)眾多文本處理的步驟,繁瑣且無專業(yè)性知識(shí)難以編程。在此項(xiàng)目完畢后,對(duì)使用工具HanLP的API調(diào)用好感倍增,較之前科研的nlp項(xiàng)目從零搭建模型環(huán)境、處理數(shù)據(jù)、模型訓(xùn)練、結(jié)果分析而言,用HanLP的API的感覺像是一把鋒利的奧卡姆剃刀?————如無必要 勿增實(shí)體,直接API調(diào)用來實(shí)現(xiàn)用戶的需求 ,簡單高效的感覺再好不過了。
? ? ? 2. 在設(shè)計(jì)該項(xiàng)目時(shí),對(duì)于使用API接口調(diào)用,原始生文本的完整正確性對(duì)于模型結(jié)果影響因子較大,在嘗試多次調(diào)用試驗(yàn)后得到上文的輸出json數(shù)據(jù),再進(jìn)行編程對(duì)json數(shù)據(jù)處理后才能得到符合項(xiàng)目需求的數(shù)據(jù)。
? ? ? 3.另,對(duì)于其中處理的一些錯(cuò)誤點(diǎn)(如對(duì)于菜品名稱的NER命名實(shí)體識(shí)別,獅子頭、絕代雙驕、螞蟻上樹等自定義實(shí)體),只是使用通用性的API接口來調(diào)用,難免有所缺失,需要在該特定領(lǐng)域建立自己的技術(shù)模型,為特定場景下的更好體驗(yàn),使用語料管理工具生成自己獨(dú)有的語料庫,并使用模型訓(xùn)練工具生成自己的專屬模型才能更好的自定義化用戶需求。此博客使用HanLP的API來實(shí)現(xiàn)餐廳用戶評(píng)價(jià)情感分析系統(tǒng)項(xiàng)目,結(jié)果初步成型,但精度未夠,記錄在案。
總結(jié)
以上是生活随笔為你收集整理的技术改变生活——用HanLP来协助处理现实中问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 美国国家气候数据中心(NCDC)数据下载
- 下一篇: 软交所助力国家级软件评测中心