Java 文件中的句子计数器

Java 文件中的句子计数器,java,eclipse,counter,sentence,Java,Eclipse,Counter,Sentence,我正在尝试制作一个简单的程序来计算单词、某些字符串和句子。我有一个单词counter,我有一个计数器来计算某些字符串,但我不知道如何计算句子,因为基本上如果我计算所有的小数,如果有多个“.”怎么办 到目前为止,这是我的代码 int count = 0; // while there is something in the file, keep reading and counting while (inputFile.hasNext()) { String token = inputFil

我正在尝试制作一个简单的程序来计算单词、某些字符串和句子。我有一个单词counter,我有一个计数器来计算某些字符串,但我不知道如何计算句子,因为基本上如果我计算所有的小数,如果有多个“.”怎么办

到目前为止,这是我的代码

int count = 0;
// while there is something in the file, keep reading and counting
while (inputFile.hasNext()) {
   String token = inputFile.next();
   count++;
}

int letters = 0;
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
    String nextToken = scanner.next();
    if (nextToken.equalsIgnoreCase("for"))
    {
    letters++;
    }

}

这里有一些答案——使用StringTokenizer、regex、BreakIterator等等——但真正的故事是:如果你真的想找到句子,识别句子不是一件小事。想想一个很长的句子,把引号和数字放在一起

有几个库可以尝试,从NLP到更复杂的NLP,如lingpipe、weka和gate。(见附件)


这完全取决于你想深入到什么程度。

每次你遇到一个点,你都要测试它两边的字符,或者至少是紧跟其后的字符。如果它是一个空格,很可能是一个句号,表示一个句子的结束。如果有一个数字,那么它是一个小数点,是数字的一部分。您将不得不使用一些正则表达式模式,但不要太重。你还必须决定是否以及如何解释那些可能会写一个句子的糟糕打字员。就像这样……你说的“如果有多个”是什么意思?你能举一个导致这个问题的输入的例子吗?(我知道我认为什么会引起问题,但我想更好地理解你想说的话。)“今天,当我在圣路易斯时,我遇到了J.Crew公司美国业务负责人保罗·卡尔森先生。“好吧,那么你可能不会把一切都做好,但是你需要想出一些主意,哪些点你会把它当作句子的结尾,哪些点你不会。