#java #regex #spell-checking
#java #регулярное выражение #проверка орфографии
Вопрос:
Я нахожусь в процессе написания программы проверки орфографии. в основном я разбиваю строку на отдельные слова, а затем сравниваю каждую строку, чтобы увидеть, есть ли она в словаре. Мне удалось удалить строку до и после слова с помощью следующего кода…
private final static String PUNC_PREFIX = "^\p{Punct} ";
private final static String PUNC_SUFFIX = "[\p{Punct}amp;amp;[^'] $]";
private final String fixPrefix(String sendIn) {
sendIn = sendIn.replaceFirst(PUNC_PREFIX, "");
return sendIn;
}
private final String fixSuffix(String sendIn) {
sendIn = sendIn.replaceFirst(PUNC_SUFFIX, "");
return sendIn;
}
моя проблема прямо сейчас заключается в таких словах, как … «привет-там», «все -сначала», словах, которые разделены пунктуацией…они помечены как неправильно написанные. но технически, привет, сначала все слова написаны правильно…просто то, что между ними есть знаки препинания, делает их «неправильными». В то же время я не хочу просто удалять все знаки препинания в word, потому что для таких слов, как «не», «не буду», «не могу», требуется, чтобы апострофы были отмечены как правильно написанные. Есть идеи, как мне следует подойти к решению этой проблемы?
Заранее спасибо
Ответ №1:
Вероятно, вы могли бы выполнить отдельный поиск, если не нашли что-либо с пунктуациями. Вы бы проверили два слова потока по отдельности (больше не вместе). Если вторая проверка верна; все в порядке.