




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、. 信息處理模塊要求:(1) 利用自然語言處理、數(shù)據(jù)挖掘技術(shù)對爬去的網(wǎng)站、論壇、博客、微博等進行文本挖掘,從各種網(wǎng)絡(luò)信息中準(zhǔn)確提取出用戶關(guān)心事件的時間、地點、主體、行為和客體等要素;(2) 分析用戶對事件要素的態(tài)度,構(gòu)成特定的用戶關(guān)注及態(tài)度模型。對大量不同類型網(wǎng)絡(luò)信息的挖掘?qū)⑿纬删哂胁町愋缘哪P蛶?,同時也可以通過用戶問卷調(diào)查的方式,獲取更多具有差異性的關(guān)注模型作為補充。1. 自然語言處理工具包:fudanNLPfudanNLP主要是為中文自然語言處理而開發(fā)的工具包,也包含為實現(xiàn)這些任務(wù)的機器學(xué)習(xí)算法和數(shù)據(jù)集。本工具包及其包含數(shù)據(jù)集使用LGPL3.0許可證。開發(fā)語言為Java。主要功能有:1.
2、文本分類 新聞聚類;2. 中文分詞 詞性標(biāo)注 實體名識別 關(guān)鍵詞抽取 依存句法分析 時間短語識別;3. 結(jié)構(gòu)化學(xué)習(xí) 在線學(xué)習(xí) 層次分類 聚類 精確推理。InputStr1 = "甬溫線特別重大鐵路交通事故車輛經(jīng)過近24小時的清理工作,26日深夜已經(jīng)全部移出事故現(xiàn)場,之前埋下的D301次動車車頭被挖出運走"InputStr2 = "甬溫線|特別|重大|鐵路交通事故車輛經(jīng)過近24小時的清理工作,26日深夜已經(jīng)全部移出事故現(xiàn)場,之前埋下的D301次動車車頭被挖出運走"抽取top10:Output1 = 甬溫線=100, 運走=100, 事故=52, 工作=41
3、, 深夜=36, 清理=36, 全部=33, 小時=30, 移出=30, 車輛=26;import java.util.ArrayList; Import java.util.Map; import org.fnlp.app.keyword.AbstractExtractor; import org.fnlp.app.keyword.WordExtract; import .tag.CWSTagger; import edu.fudan.nlp.corpus.StopWords; public class GetKeywords public ArrayList<String> G
4、etKeyword(String News,int keywordsNumber) throws Exception ArrayList<String> keywords=new ArrayList<String>(); StopWords sw= new StopWords("models/stopwords"); CWSTagger seg = new CWSTagger("models/seg.m"); AbstractExtractor key = new WordExtract(seg,sw); Map<Strin
5、g,Integer> ans = key.extract(News, keywordsNumber); for (Map.Entry<String, Integer> entry : ans.entrySet() String keymap = entry.getKey().toString(); String value = entry.getValue().toString(); keywords.add(keymap); System.out.println("key" + keymap + "value" + value); r
6、eturn keywords; 輸出結(jié)果是這樣:2. 關(guān)鍵字提取后對文本進行分類 第一步,對文檔進行預(yù)處理過程。按照文本文檔數(shù)據(jù)集(一般分目錄放置文本文檔)路徑對所有訓(xùn)練文檔掃描,分析出不同的單詞。第二步,建立詞頻矩陣。預(yù)處理之后,將文章變?yōu)橐粋€詞集,單詞也稱為特征項或?qū)傩浴0盐臋n看成是一個詞向量(word vector ),它的維數(shù)是所有不同的單詞個數(shù),詞集中可以有數(shù)萬個不同的單詞。第三步,構(gòu)造文本分類器。詞頻統(tǒng)計矩陣是算法建模的基礎(chǔ)。在詞頻統(tǒng)計矩陣的基礎(chǔ)上根據(jù)特定的算法構(gòu)造分類器。主要任務(wù)是根據(jù)不同分類算法,計算詞向量的權(quán)值。目前較為著名的文本分類算法包括支持向量機(S
7、upport Vector Machine,SVM), K 近鄰法(K- Nearest Neighbour,KNN), 樸素貝葉斯法(NaiveBayes,NB), 神經(jīng)網(wǎng)絡(luò)法(Neural Network,NNet), 線性最小二乘法( Linear Least Squares Fit,LLSF) 等 在本次實驗中我組將打算用神經(jīng)網(wǎng)絡(luò)法。其代碼如下。ackage com.mfsoft.ai.algorithm.imp; p
8、ublic class RbfNet extends Object int inNum; /輸入接點數(shù)int hideNum;/隱含接點數(shù) int outNum; /輸出接點數(shù) double c;/重心 double d;/距離(歪) int epochs; double x; /輸入向量 double x1;/隱含接點狀態(tài)值 double x2
9、;/輸出接點狀態(tài)值 double o1; double o2; double w;/隱含接點權(quán)值 double w1;/輸出接點權(quán)值 double rate_w; /權(quán)值學(xué)習(xí)率(輸入層-隱含層) double rate_w1;/權(quán)值學(xué)習(xí)率 (隱含層-輸出層) double rate_b1;/隱含層閥值學(xué)習(xí)率 double rate_b2;/輸出層閥值學(xué)習(xí)率 double b1;/隱含接點閥值
10、60;Double b2;/輸出接點閥值 double pp; double qq;double yd;double e; double in_rate;/輸入歸一化比例系數(shù) public RbfNet(int inNum,int hideNum,int outNum,double p) in_rate=1.0;/輸入歸一化系數(shù) /* double pmax=0.0; for
11、0;(int isamp=0;isamp<p.length;isamp+) for (int i=0;i<inNum;i+) if (Math.abs(pisamp)>pmax) pmax=Math.abs(pisamp); /end for isamp in_rate=pmax; for (int isamp=0;isamp<p.length;isamp+) for (int
12、i=0;i<inNum;i+) pisamp=pisamp/in_rate; /end for isamp3. 文本聚類文檔聚類可以作為多文檔自動文稿等自然語言處理應(yīng)用的預(yù)處理步驟。其實現(xiàn)算法有Apriori算法等。 Apriori算法的基本思想是:首先找出所有的頻集,這些項集出現(xiàn)的頻繁性至少和預(yù)定義的最小支持度一樣。然后由頻集產(chǎn)生強關(guān)聯(lián)規(guī)則,這些規(guī)則必須滿足最小支持度和最小可信度。然后使用第1步找到的頻集產(chǎn)生期望的規(guī)則,產(chǎn)生只包含集合的項的所有規(guī)則,其中每一條規(guī)則的右部只有一項,這里采用的是中規(guī)則的定義。一旦這些規(guī)則被生成,那么只有那些大于用戶給
13、定的最小可信度的規(guī)則才被留下來。為了生成所有頻集,使用了遞歸的方法。其代碼如下:package apr;import java.io.BufferedWriter;import java.io.FileWriter;import java.util.*;public class Apriori private double minsup = 0.6;/ 最小支持度 private double minconf = 0.2;/ 最小置信度 / 注意使用IdentityHashMap,否則由于關(guān)聯(lián)規(guī)則產(chǎn)生存在鍵值相同的會出現(xiàn)覆蓋 private IdentityHashMap ruleMap =
14、new IdentityHashMap(); private String transSet = "abc", "abc", "acde", "bcdf", "abcd", "abcdf" ;/ 事務(wù)集合,可以根據(jù)需要從構(gòu)造函數(shù)里傳入 private int itemCounts = 0;/ 候選1項目集大小,即字母的個數(shù) private TreeSet frequencySet = new TreeSet40;/ 頻繁項集數(shù)組,0:代表1頻繁集. private TreeS
15、et maxFrequency = new TreeSet();/ 最大頻繁集 private TreeSet candidate = new TreeSet();/ 1候選集 private TreeSet candidateSet = new TreeSet40;/ 候選集數(shù)組 private int frequencyIndex; public Apriori() maxFrequency = new TreeSet(); itemCounts = counts();/ 初始化1候選集的大小 / 初始化其他兩個 for (int i = 0; i < itemCounts; i+)
16、 frequencySeti = new TreeSet(); candidateSeti = new TreeSet(); candidateSet0 = candidate; public Apriori(String transSet) this.transSet = transSet; maxFrequency = new TreeSet(); itemCounts = counts();/ 初始化1候選集的大小 / 初始化其他兩個 for (int i = 0; i < itemCounts; i+) frequencySeti = new TreeSet(); candida
17、teSeti = new TreeSet(); candidateSet0 = candidate; public int counts() String temp1 = null; char temp2 = 'a' / 遍歷所有事務(wù)集String 加入集合,set自動去重了 for (int i = 0; i < transSet.length; i+) temp1 = transSeti; for (int j = 0; j < temp1.length(); j+) temp2 = temp1.charAt(j); candidate.add(String.v
18、alueOf(temp2); return candidate.size(); public void item1_gen() String temp1 = "" double m = 0; Iterator temp = candidateSet0.iterator(); while (temp.hasNext() temp1 = (String) temp.next(); m = count_sup(temp1); / 符合條件的加入 1候選集 if (m >= minsup * transSet.length) frequencySet0.add(temp1);
19、 public double count_sup(String x) int temp = 0; for (int i = 0; i < transSet.length; i+) for (int j = 0; j < x.length(); j+) if (transSeti.indexOf(x.charAt(j) = -1) break; else if (j = (x.length() - 1) temp+; return temp; public void canditate_gen(int k) String y = "", z = "&qu
20、ot;, m = "" char c1 = 'a', c2 = 'a' Iterator temp1 = frequencySetk - 2.iterator(); Iterator temp2 = frequencySet0.iterator(); TreeSet h = new TreeSet(); while (temp1.hasNext() y = (String) temp1.next(); c1 = y.charAt(y.length() - 1); while (temp2.hasNext() z = (String) temp
21、2.next(); c2 = z.charAt(0); if (c1 >= c2) continue; else m = y + z; h.add(m); temp2 = frequencySet0.iterator(); candidateSetk - 1 = h; / k候選集=>k頻繁集 public void frequent_gen(int k) String s1 = "" Iterator ix = candidateSetk - 1.iterator(); while (ix.hasNext() s1 = (String) ix.next();
22、if (count_sup(s1) >= (minsup * transSet.length) frequencySetk - 1.add(s1); public boolean is_frequent_empty(int k) if (frequencySetk - 1.isEmpty() return true; else return false; public boolean included(String s1, String s2) for (int i = 0; i < s1.length(); i+) if (s2.indexOf(s1.charAt(i) = -1
23、) return false; else if (i = s1.length() - 1) return true; return true; public void maxfrequent_gen() int i, j; Iterator iterator, iterator1, iterator2; String temp = "", temp1 = "", temp2 = "" for (i = 1; i < frequencyIndex; i+) maxFrequency.addAll(frequencySeti); /
24、 for (i = 0; i < frequencyIndex; i+) / iterator1 = frequencySeti.iterator(); / while (iterator1.hasNext() / temp1 = (String) iterator1.next(); / for (j = i + 1; j < frequencyIndex; j+) / iterator2 = frequencySetj.iterator(); / while (iterator2.hasNext() / temp2 = (String) iterator2.next(); / i
25、f (included(temp1, temp2) / maxFrequency.remove(temp1); / / / / public void print_maxfrequent() Iterator iterator = maxFrequency.iterator(); System.out.print("產(chǎn)生規(guī)則頻繁項集:"); while (iterator.hasNext() System.out.print(toDigit(String) iterator.next() + "t"); System.out.println(); pub
26、lic void rulePrint() String x, y; double temp = 0; Set hs = ruleMap.keySet(); Iterator iterator = hs.iterator(); StringBuffer sb = new StringBuffer(); System.out.println("關(guān)聯(lián)規(guī)則:"); while (iterator.hasNext() x = (String) iterator.next(); y = (String) ruleMap.get(x); temp = (count_sup(x + y)
27、/ count_sup(x); /x = toDigit(x); /y = toDigit(y); System.out.println(x + (x.length() < 5 ? "t" : "") + "->" + y + "t" + temp); sb.append(" " + x + (x.length() < 5 ? "t" : "") + "->" + y + "t" + temp
28、 + "tn"); BufferedWriter bw = null; try FileWriter fw = new FileWriter("Asr.txt"); bw = new BufferedWriter(fw); bw.write("最小支持度 minsup = " + minsup); bw.newLine(); bw.write("最小置信度 minconf = " + minconf); bw.newLine(); bw.write("產(chǎn)生關(guān)聯(lián)規(guī)則如下: "); bw.newLi
29、ne(); bw.write(sb.toString(); / bw.newLine(); if (bw != null) bw.close(); catch (Exception e) e.printStackTrace(); public void subGen(String s) String x = "", y = "" for (int i = 1; i < (1 << s.length() - 1; i+) for (int j = 0; j < s.length(); j+) if (1 << j) &a
30、mp; i) != 0) x += s.charAt(j); for (int j = 0; j < s.length(); j+) if (1 << j) & (i) != 0) y += s.charAt(j); if (count_sup(x + y) / count_sup(x) >= minconf) ruleMap.put(x, y); x = "" y = "" public void ruleGen() String s; Iterator iterator = maxFrequency.iterator(
31、); while (iterator.hasNext() s = (String) iterator.next(); subGen(s); / for test public void print1() Iterator temp = candidateSet0.iterator(); while (temp.hasNext() System.out.println(temp.next(); / for test public void print2() Iterator temp = frequencySet0.iterator(); while (temp.hasNext() System
32、.out.println(String) temp.next(); / for test public void print3() canditate_gen(1); frequent_gen(2); Iterator temp = candidateSet1.iterator(); Iterator temp1 = frequencySet1.iterator(); while (temp.hasNext() System.out.println("候選" + (String) temp.next(); while (temp1.hasNext() System.out.
33、println("頻繁" + (String) temp1.next(); public void print_canditate() for (int i = 0; i < frequencySet0.size(); i+) Iterator ix = candidateSeti.iterator(); Iterator iy = frequencySeti.iterator(); System.out.print("候選集" + (i + 1) + ":"); while (ix.hasNext() System.out.print(String) ix.next() + "t"); /System.out.print(toDigit(String) ix.next() + "t"
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國建設(shè)銀行貸款合同
- 遼寧2025年03月遼寧省氣象部門事業(yè)單位公開招考工作人員(第三批次)筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年廣西百色工業(yè)園區(qū)科創(chuàng)服務(wù)有限公司招聘筆試參考題庫附帶答案詳解
- 2025年浙江寧波農(nóng)副產(chǎn)品物流中心有限公司招聘筆試參考題庫含答案解析
- 2025年一建《機電工程管理與實務(wù)》考試模擬沖刺題庫(實戰(zhàn)案例)
- 2025中外合作開發(fā)新能源技術(shù)合同
- 2025外匯質(zhì)押人民幣貸款借款合同
- 2025年2月區(qū)塊鏈技術(shù)實現(xiàn)物流保險動態(tài)定價機制
- 寒假寫的日記200字
- 海域使用可研報告
- 2024年山東省青島市部分學(xué)校九年級中考二模數(shù)學(xué)試題(含答案)
- 河南省鄭州市中原區(qū)2023-2024學(xué)年三年級下學(xué)期期中考試數(shù)學(xué)試卷
- 日常保安服務(wù)投標(biāo)技術(shù)方案(技術(shù)標(biāo))
- 行政復(fù)議法-形考作業(yè)1-國開(ZJ)-參考資料
- 中國軍事武器
- 八年級語文(完整版)標(biāo)點符號及使用練習(xí)題及答案
- 金屬非金屬地下礦山人員定位系統(tǒng)建設(shè)規(guī)范
- 中考語文專題復(fù)習(xí)十議論性文本閱讀市賽課公開課一等獎省名師獲獎?wù)n件
- 噴塑車間安全培訓(xùn)
- 2024活躍用戶研究報告(小紅書平臺)-千瓜-202404
- 市場營銷策劃(本)-形考任務(wù)二(第五~七章)-國開(CQ)-參考資料
評論
0/150
提交評論