Java 识别字串和表情符号,标点符号有问题
我要先说我在编程方面没有任何技术经验,所以如果我使用了不正确的术语,请原谅,但我的任务仍然是找到解决问题的方法 我们有一个应用程序的一部分,用于识别Facebook和Twitter帖子中的积极和消极词语和表情。我们已经为此开发了全面的字典,但是我们的代码执行得并不好 问题:以标点符号结尾的单词,例如:惊人!没有被识别。目前,单词是根据空格分割的。我认为我们不能完全去掉标点符号,因为这会影响表情符号列表的识别 解决方案:我们希望遵循以下思路: 1在空白处拆分以获取单词 然后,对于每个单词: 我检查它们是否与任何现有字符串匹配,例如“害怕” 如果有,就转到下一个单词 ib如果没有,请从单词尾部删除标点符号,然后返回到i 有没有人能帮我了解这个可能的语法?我们需要为iPhone和Android C++和java编写这个。Java 识别字串和表情符号,标点符号有问题,java,ios,sentiment-analysis,Java,Ios,Sentiment Analysis,我要先说我在编程方面没有任何技术经验,所以如果我使用了不正确的术语,请原谅,但我的任务仍然是找到解决问题的方法 我们有一个应用程序的一部分,用于识别Facebook和Twitter帖子中的积极和消极词语和表情。我们已经为此开发了全面的字典,但是我们的代码执行得并不好 问题:以标点符号结尾的单词,例如:惊人!没有被识别。目前,单词是根据空格分割的。我认为我们不能完全去掉标点符号,因为这会影响表情符号列表的识别 解决方案:我们希望遵循以下思路: 1在空白处拆分以获取单词 然后,对于每个单词: 我检查
非常感谢您的帮助 我假设您已经有了一个方法,我称之为checkDictionaryForMatches,用于检查一个单词是否与您存储在词典中的单词匹配
public static boolean[] checkString(String string){
String[] stringarray = string.split(" ");
boolean[] boolarray = new boolean[stringarray.length];
for (int i = 0; i < stringarray.length; i++){
if (stringarray[i].checkDictionaryForMatches() == true){
boolarray[i] = true;
}
else{
StringBuilder sb = new StringBuilder(stringarray[i]);
for (int j = 0; j < sb.length(); j++){
if (sb.charAt(j) == '!'){
sb.deleteCharAt(j);
}
}
if (sb.toString().checkDictionaryForMatches() == true){
boolarray[i] = true;
}
else{
boolarray[i] = false;
}
}
}
return boolarray;
}
这只会让你摆脱痛苦!字符,但如果您想使用更通用的解决方案,只需对每段标点符号使用或操作数| |,或者最好使用正则表达式。由于首先计算checkDictionaryForMatches方法,因此可以将所有表情符号定义为该词典的成员。我在手机上,所以我不能测试它,但希望它能起作用
这确实会让你产生意想不到的表情,但我不知道你会怎么处理。它还可以防止用户将标点符号放在单词的中间,例如re.d或一些随机的东西。也许它对从Twitter句柄中剥离@会有用,或者其他什么?如果有任何问题,请与我联系 非常感谢你的帮助!这无疑帮助我们制定了解决方案。它的目的是:在我们的字典中匹配所有表情符号的句子“不拆分”;然后识别单词:对所有不是a-zA-Z0-9'的单词进行拆分。但是,它确实有一小部分假阳性匹配,例如,像这样的标点符号错误。我正在写一个颜色列表:紫色,绿蓝色=:P