慕工程0101907
2019-03-13 14:15:44
有一個(gè)9M多行的語料庫,文件大小4G?,F(xiàn)在需要匹配指定動(dòng)詞,符合句子條件的輸出。但是文件過大。每次讀取一行。匹配下來要好久。請(qǐng)問有沒有什么方法可以加快處理速度。BufferedReader cpreader = new BufferedReader(new InputStreamReader(new FileInputStream(this.getCorpusPath())));tring line = cpreader.readLine();while(line != null) { ArrayList<String> verbList = new ArrayList(); matcher_line = Pattern.compile("(.*\\%\\&\\$cook\\%\\&\\$VB.*)").matcher(line); if(matcher_line.find()) { System.out.println(line); } line = cpreader.readLine(); }
5 回答

三國紛爭(zhēng)
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊
讀文件的話應(yīng)該是沒有問題的,不過你可以嘗試改為緩沖式讀取,因?yàn)橐恍械拇笮?可能是不確定的,會(huì)對(duì)效率造成影響吧。。
匹配的話如果是單個(gè)單詞的話,可以改用更好的匹配方法,正則的話就不曉得了

浮云間
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊
Pattern.compile("(.*\\%\\&\\$cook\\%\\&\\$VB.*)")
這個(gè)在循環(huán)里邊,每次都要編譯正則,所以很慢,你把這個(gè)放到while外邊看看

楊魅力
TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個(gè)贊
添加回答
舉報(bào)
0/150
提交
取消