【发布时间】:2014-11-02 21:55:18
【问题描述】:
String x=" i am going to the party at 6.00 in the evening. are you coming with me?";
如果我有上述字符串,我需要通过使用句子边界标点符号(如 . 和 ?)将其分解为句子
但它不应该在 6 处拆分句子,因为那里有一个指针。有没有办法确定java中正确的句子边界位置是什么?我曾尝试在 java.util pakage 中使用 stringTokenizer,但它总是在找到指针时打破句子。有人可以建议我正确执行此操作的方法吗?
这是我尝试将文本标记为句子的方法。
public static ArrayList<String> sentence_segmenter(String text) {
ArrayList<String> Sentences = new ArrayList<String>();
StringTokenizer st = new StringTokenizer(text, ".?!");
while (st.hasMoreTokens()) {
Sentences.add(st.nextToken());
}
return Sentences;
}
我也有一种将句子分割成短语的方法,但是当程序发现逗号(,)时,它也会分割文本。但是当有像 60,000 这样中间有逗号的数字时,我不需要拆分它。以下是我用来分割短语的方法。
public static ArrayList<String> phrasesSegmenter(String text) {
ArrayList<String> phrases = new ArrayList<String>();
StringTokenizer st = new StringTokenizer(text, ",");
while (st.hasMoreTokens()) {
phrases.add(st.nextToken());
}
return phrases;
}
【问题讨论】:
-
您需要为此使用分句器。查看相关问题:stackoverflow.com/questions/9492707/…