我使用了一些单词计数算法,仔细看看我很想知道因为我在文本中输出的单词比原来少,因为它们将例如“它”作为一个单词。所以我试图找到一个解决方案,但没有任何成功,所以我问自己,他们是否有任何东西可以将“它是”这样的“短语”转换为“基本单词”,说“它是”。
答案 0 :(得分:0)
嗯,基本上你需要提供一个数据结构,将缩写的术语映射到相应的长版本。然而,这并不像听起来那么简单,例如你不想转换“客户的车。”到“客户端是汽车。” < / p>
要管理这些案例,您可能需要一种能够更深入理解您正在处理的语言以及它所包含的语法规则的启发式方法。
答案 1 :(得分:0)
我刚从头开始构建这个挑战。它似乎正在我的努力。让我知道它对你有用。
public static void main(String[] args) {
String s = "it's such a lovely day! it's really amazing!";
System.out.println(convertText(s));
//output: it is such a lovely day! it is really amazing!
}
public static String convertText(String text) {
String noContraction = null;
String replaced = null;
String[] words = text.split(' ');
for (String word : words) {
if (word.contains("'s")) {
String replaceAposterphe = word.replace("'", "$");
String[] splitWord = replaceAposterphe.split('$');
noContraction = splitWord[0] + " is";
replaced = text.replace(word, noContraction);
}
}
return replaced;
}
我在C#中这样做并尝试将其转换为Java。如果您发现任何语法错误,请指出它们。