正则表达式 - Java 读取txt格式语料库并匹配指定字符串,如何可以快速完成?
迷茫
迷茫 2017-04-17 17:50:07
0
4
735

有一个9M多行的语料库,文件大小4G。现在需要匹配指定动词,符合句子条件的输出。
但是文件过大。每次读取一行。匹配下来要好久。请问有没有什么方法可以加快处理速度。

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();
            }
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

모든 응답(4)
左手右手慢动作

파일을 읽는 데에는 문제가 없지만, 줄 크기가 불확실할 수 있어 효율성에 영향을 미칠 수 있으므로 버퍼링 읽기로 변경해 볼 수 있습니다. .
단일 단어로 일치하는 경우에는 더 나은 일치 방법을 사용할 수 있습니다.

小葫芦

프로그램이 라인 단위로 처리됩니다. 멀티 스레드 처리를 사용하면 처리 후 다음 라인을 처리하는 것이 가장 좋습니다. 캐시를 사용하여 여러 줄을 읽은 다음 처리를 위해 여러 스레드에 할당하여 CPU를 최대화할 수 있습니다.

Ty80

니오+멀티스레딩

刘奇

으아악

이것은 루프 내부에 있고 정규식은 매번 컴파일해야 하므로 매우 느립니다. 잠시 동안 외부에 두고 살펴보세요

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿