日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(3.2)将分词和去停用词后的评论文本基于“环境、卫生、价格、服务”分类...

發(fā)布時間:2025/3/17 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (3.2)将分词和去停用词后的评论文本基于“环境、卫生、价格、服务”分类... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

酒店評論情感分析系統(tǒng)(三)——

將分詞和去停用詞后的評論文本基于“環(huán)境、衛(wèi)生、價格、服務”分類

思想:

將進行了中文分詞和去停用詞之后得到的詞或短語按序存在一個數(shù)組(iniArray)中,從中找出所有和“環(huán)境、衛(wèi)生、價格、服務”四個方面相關的詞或短語,并記錄下其位置信息(sortRefNum)。然后按照位置信息,對每一個標記出的關鍵詞,記錄下從當前關鍵詞起到下一個關鍵詞止的信息,放入一個String型的數(shù)組中(midArray),最后將此數(shù)組中的關鍵詞再分別基于“環(huán)境、衛(wèi)生、價格、服務”四個方面分類(fourClass)。

前提條件:

1)? 此步驟是在【(3.1)用ictclas4j進行中文分詞,并去除停用詞】后所得到的文本基礎上的實驗;

2)? 在sentence文件目錄中的srcFile目錄下,須自己建立以下幾個額外的詞庫:

?

EnvironmentRef:與環(huán)境相關的相關詞匯,比如:交通,設施等;

HealthRef:與衛(wèi)生相關的相關詞匯,比如:衛(wèi)生,臟等;

PriceRef:與價錢相關的相關詞匯,比如:收費,價格等;

ServiceRef:與服務相關的相關詞匯,比如:服務,態(tài)度等

RefWords:以上四個相關詞表的總和。

代碼實現(xiàn):

新建一個class(如:Fenlei.java)

?

1 import java.io.BufferedReader; 2 import java.io.File; 3 import java.io.FileInputStream; 4 import java.io.FileNotFoundException; 5 import java.io.IOException; 6 import java.io.InputStreamReader; 7 import java.util.HashSet; 8 import java.util.Set; 9 10 11 public class Fenglei { 12 13 //將分詞和去停用詞的結果提取出來 14 String destFile = "." + File.separator + "destFile" + File.separator + "酒店評論.txt"; 15 public static final String RefWord = "." + File.separator + "srcFile" + File.separator + "RefWords.txt"; 16 public static final String EnvironmentRef = "." + File.separator + "srcFile" + File.separator + "EnvironmentRef.txt"; 17 public static final String HealthRef = "." + File.separator + "srcFile" + File.separator + "HealthRef.txt"; 18 public static final String PriceRef = "." + File.separator + "srcFile" + File.separator + "PriceRef.txt"; 19 public static final String ServiceRef = "." + File.separator + "srcFile" + File.separator + "ServiceRef.txt"; 20 21 public void fenlei(){ 22 try{ 23 //讀取原文件和相關詞表 24 BufferedReader srcBr = new BufferedReader(new InputStreamReader(new FileInputStream(new File(destFile)))); 25 BufferedReader refBr = new BufferedReader(new InputStreamReader(new FileInputStream(new File(RefWord)))); 26 BufferedReader environmentRefBr = new BufferedReader(new InputStreamReader(new FileInputStream(new File(EnvironmentRef)))); 27 BufferedReader healthRefBr = new BufferedReader(new InputStreamReader(new FileInputStream(new File(HealthRef)))); 28 BufferedReader priceRefBr = new BufferedReader(new InputStreamReader(new FileInputStream(new File(PriceRef)))); 29 BufferedReader serviceRefBr = new BufferedReader(new InputStreamReader(new FileInputStream(new File(ServiceRef)))); 30 31 //將分詞去停用詞后的單詞,按序放在String數(shù)組中 32 String paragraph = null; 33 String[] iniArray = null; 34 for(; (paragraph = srcBr.readLine()) != null;){ 35 iniArray = paragraph.split(" "); 36 } 41 42 Set<String> refWordSet = getSet(refBr); //相關詞匯集 43 Set<String> environmentSet = getSet(environmentRefBr); 44 Set<String> healthSet = getSet(healthRefBr); 45 Set<String> priceSet = getSet(priceRefBr); 46 Set<String> serviceSet = getSet(serviceRefBr); 47 48 //用一個int數(shù)組refNum存放分析文本中尋找相關關鍵詞 49 int[] refNum = new int[iniArray.length]; 50 int refNumcount = 0; 51 for(int i = 0; i< iniArray.length; i++){ 52 if(refWordSet.contains(iniArray[i])){ 53 refNum[refNumcount++] = i; 54 } 55 } 56 57 //對refNum數(shù)組進行排序 58 int[] sortRefNum = new int[refNumcount]; 59 bubble(refNum); 60 for(int i = refNum.length-refNumcount,j=0;j<refNumcount;i++,j++){ 61 sortRefNum[j] = refNum[i]; 62 } 63 64 //對屬于同一相關的短語進行記錄 65 String[] midArray = new String[refNumcount]; 66 int midArrayCount = 0; 67 for(int i=0; i<refNumcount-1; i++){ 68 int j=sortRefNum[i]; 69 midArray[midArrayCount] = ""; 70 for(;j < sortRefNum[i+1];j++ ){ 71 if(iniArray[j] != null){ 73 midArray[midArrayCount] += iniArray[j].toString()+" "; 74 } 75 } 76 midArrayCount++; 77 } 78 midArray[midArrayCount] = ""; 79 for(int i = sortRefNum[refNumcount-1];i < iniArray.length;i++){ 80 midArray[midArrayCount] += iniArray[i].toString()+" "; 81 } 82 83 //對相關短語屬于同一大類的短語進行合并整理,如“光線”類和“隔音”應該同屬于“環(huán)境”類 84 String[] fourClass = new String[4]; 85 fourClass[0] = "環(huán)境: "; 86 fourClass[1] = "衛(wèi)生: "; 87 fourClass[2] = "價格: "; 88 fourClass[3] = "服務: "; 89 for(int j=0;j<=midArrayCount;j++){ 90 if(environmentSet.contains(iniArray[sortRefNum[j]])){ //0-環(huán)境 91 fourClass[0] += midArray[j].toString()+" "; 92 }else{ 93 if(healthSet.contains(iniArray[sortRefNum[j]])){ //1-衛(wèi)生 94 fourClass[1] += midArray[j].toString()+" "; 95 }else{ 96 if(priceSet.contains(iniArray[sortRefNum[j]])){ //2-價格 97 fourClass[2] += midArray[j].toString()+" "; 98 }else{ 99 if(serviceSet.contains(iniArray[sortRefNum[j]])){ //3-服務 100 fourClass[3] += midArray[j].toString()+" "; 101 } 102 } 103 } 104 } 105 } 106 }catch(FileNotFoundException e){ 107 // TODO Auto-generated catch block 108 e.printStackTrace(); 109 } catch(Exception e){ 110 e.printStackTrace(); 111 } 112 } 113 114 //冒泡排序 115 public int[] bubble(int[] array) { 116 int temp = 0; 117 for (int i = array.length - 1; i > 0; --i) { 118 for (int j = 0; j < i; j++) { 119 if (array[j] > array[j+1]) { 120 temp = array[j]; 121 array[j] = array[j+1]; 122 array[j+1] = temp; 123 } 124 } 125 } 126 return array; 127 } 128 129 130 //詞匯表的集合 131 public Set<String> getSet(BufferedReader br){ 132 Set<String> wordSet = new HashSet<String>(); //用來放詞匯的集合 133 String word = null; 134 try { 135 for(; (word = br.readLine()) != null;){ 136 wordSet.add(word); 137 } 138 } catch (IOException e) { 139 // TODO Auto-generated catch block 140 e.printStackTrace(); 141 } 142 return wordSet; 143 } 144 145 public static void main(String[] args){ 146 new Fenglei().fenlei(); 147 } 149 }

?

運行效果:

源評論文本:

總體評價:性價比很高,交通便利,周邊吃喝玩樂設施齊全,對面就是家樂福。但是前臺男客服服務態(tài)度很一般,酒店光線太暗看不清,總感覺臟臟的,并且隔音效果一般,有一點點吵,導致晚上睡覺不踏實。對于價錢,三星級價格有點高,一次性用品要收費,覺得很不合理。

?

分詞和去停用詞后的文本:

總體 評價 性 價 高 交通 便利 周邊 吃喝玩樂 設施 齊全 對面 家樂福 前臺 男客 服 服務 態(tài)度 一般 酒店 光線 太 暗 不 清 總 感覺 臟臟 隔音 效果 一般 一點點 吵 導致 晚上 睡覺 不 踏實 價錢 三星級 價格 點 高 一次性 用品 收費 覺得 不 合理

?

midArray數(shù)組中的內容:

交通 便利 周邊 吃喝玩樂
設施 齊全 對面 家樂福 前臺 男客 服
服務
態(tài)度 一般 酒店
光線 太 暗 不 清 總 感覺
臟臟
隔音 效果 一般 一點點 吵 導致 晚上 睡覺 不 踏實
價錢 三星級
價格 點 高 一次性 用品
收費 覺得 不 合理

?

按“環(huán)境、衛(wèi)生、價格、服務”分類后的結果:

環(huán)境:交通 便利 周邊 吃喝玩樂? 設施 齊全 對面 家樂福 前臺 男客 服? 光線 太 暗 不 清 總 感覺? 隔音 效果 一般 一點點 吵 導致 晚上 睡覺 不 踏實?

衛(wèi)生: 臟臟?

價格: 價錢 三星級? 價格 點 高 一次性 用品? 收費 覺得 不 合理?

服務: 服務? 態(tài)度 一般 酒店?

?

缺點:

此實驗的分類效果一般,對于源文本的輸入格式有一定的限制,比如對于“前臺男客服服務態(tài)度很一般”這一句,最終的分類結果變?yōu)椤碍h(huán)境: 前臺 男客 服;服務: 服務? 態(tài)度 一般”。故,此實驗只是作為一種思想的體現(xiàn),如有更好的文本細分的想法,歡迎留言探討!

轉載于:https://www.cnblogs.com/CherishFX/p/4038448.html

總結

以上是生活随笔為你收集整理的(3.2)将分词和去停用词后的评论文本基于“环境、卫生、价格、服务”分类...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: www.xxxx国产 | 网友自拍一区 | 欧美性色视频 | 久久久久午夜 | 粉嫩一区| a级片一区二区 | 麻豆一区二区三区在线观看 | 天天色综合天天 | 中文字幕第八页 | 97视频在线观看免费高清完整版在线观看 | 在线不卡日韩 | 免费毛片播放 | 人人妻人人澡人人爽精品 | 亚洲激情六月 | 国产精品久久一区 | 好男人资源 | 久久久久99精品成人片毛片 | 亚洲69| 91精品在线免费观看 | 三上悠亚在线观看一区二区 | 91导航| 国产传媒精品 | 真实偷拍激情啪啪对白 | 亚洲第一精品网站 | 久久色网 | 久久久精品视频在线观看 | 777777av| 亚洲AV成人无码一二三区在线 | 天天干天天插 | 亚洲欧洲免费 | 台湾色综合 | 97久草| 久久久久欧美 | 日韩欧美视频免费观看 | 情侣自拍av| 国产一区视频在线播放 | 日日夜夜网站 | 麻豆精品一区二区三区 | 日本一区二区免费在线观看 | 狠狠干精品 | 青草视频在线观看免费 | 久久久久久久久91 | 玖玖五月 | 国产亚洲精品久久久久动 | 久久精品视频91 | 影音先锋激情在线 | 亚洲区一 | 91在线视频国产 | 日韩欧美亚洲国产 | 重口另类| 亚洲国产中文字幕在线观看 | 欧美日本免费 | 日本一二三区视频 | 日韩成人一级片 | 欧美成人秋霞久久aa片 | 日韩欧美一区二区三区免费观看 | 精品午夜视频 | 亚洲色图在线观看 | 免费亚洲一区 | 一区二区三区不卡视频 | 中文字幕制服诱惑 | 免费av观看网站 | 精品久久无码视频 | 清冷学长被爆c躁到高潮失禁 | 男生把女生困困的视频 | 亚洲人成在线免费观看 | 欧美亚洲综合视频 | 国精品无码一区二区三区 | 九九热色 | 黄色国产 | 综合网五月天 | 日日夜夜精品视频 | 国产精品久久久久毛片 | 精品少妇人妻av一区二区 | 美女18毛片| caoporm超碰 | 99久久人妻无码中文字幕系列 | 无码人妻av一区二区三区波多野 | 韩日精品中文字幕 | 日本成人片网站 | 亚洲字幕 | 国产人妻777人伦精品hd | 91视频三区| 国产xxxx孕妇 | 丁香六月婷婷综合 | 国产在线一二三 | 日本后进式猛烈xx00动态图 | 成人午夜视频在线免费观看 | 福利姬在线观看 | 在线免费国产视频 | 99自拍视频 | 强伦轩人妻一区二区电影 | 亚洲日本一区二区 | 天天做天天爱天天爽综合网 | 久久99精品国产麻豆91樱花 | 波多野结衣中文字幕久久 | 视频1区2区| 久久视频一区 | 天天躁狠狠躁狠狠躁夜夜躁68 |