我想从字符串中获取特定类型的子字符串。
例如,我希望能够从字符串Computer Science
获取子字符串String text = "I studied Computer Science";
。
另一个例子是从字符串Physics
获取子串String text = "I studied Physics for 5 years at the University of XXXXXXX";
。
拜托,我怎么能实现这个目标?感谢
注意:对于所有其他类型的课程,它应该是灵活的。
答案 0 :(得分:1)
如果您只想查看以前知道的单词是否在句子中,您可以使用contains。例如,如果您要在您的函数中接收计算机科学或 Physics 作为参数。
public boolean checkIfExists(String word) {
return sentence.contains(word)
}
如果你不知道你会搜索什么类型的单词,但你知道句子的结构:“我研究过XXXX ...”你可以使用indexOf然后搜索下一个空白字符ang获取索引和下一个空白字符之间的单词。
如果您知道可以搜索的所有可能课程,您可以构建Set结构并检查所有课程(如果句子中存在某些课程)。
Set<String> courses = {Physics, Computer Science, Maths}
public boolean checkIfExists(String word) {
return courses.contains(word);
}
如果你不知道以前的任何一个案例,我认为问题很难,你必须去NLP
答案 1 :(得分:1)
您的问题与机器学习有关。 你必须相应地处理你的句子..
你可以标记你的句子中的名词,动词[发言的部分]并将其分解并用一些逻辑来找到像物理一样的名词。
请找到您可以通过其标记每个单词的API,了解更多信息。 的 https://opennlp.apache.org/ 强>
答案 2 :(得分:0)
您需要的是模式匹配方法。这是一个学习典型问题的机器,使用像Python这样的语言很容易解决。在Java中,您可以使用Pattern类,您会发现这个答案很有用:pattern.matcher() vs pattern.matches()