Программа классификации простых предложений Java
Мне нужна помощь с формой программы классификации предложений.
Программа, которая читает файлы и проверяет каждое предложение в файле, чтобы найти любые "ключевые слова". Ключевые слова находятся в другом файле со словами, написанными внутри него. Если он находит ключевое слово, он записывает это предложение в другой файл.
До сих пор я крут с чтением входного файла и разбиением на предложения и написанием выходного файла
Не могли бы вы дать какое-то указание о том, как программа будет читать каждое предложение в первом файле и сравнивать его со словами во втором файле, и, если она найдет ключевое слово в предложении, записать в третий файл?
Большое спасибо!
3 ответа
Я могу дать решение на основе PHP-
- Разобрать строку предложения.
Используйте функцию strtok() и определите общую пунктуацию (",'()/ etc) в качестве токенизаторов / классификаторов.
сформировать массив / набор словаря данных, содержащий предопределенные слова.
Используйте функцию preg_match(), для полного совпадения слов вы можете использовать указанные структуры для построения массива как -> $variable = array ("/(\bword1\b)/", "/(\bword2\b)/").
Для справочных целей / спецификаций вышеупомянутых функций, ищите документы php по адресу - http://www.php.net/
Надеюсь, я смогу помочь.
Приветствия.
Ключевые слова являются набором, я полагаю. Вам понадобится быстрый доступ к ним, поэтому используйте HashSet
,
Если ваши ключевые слова должны соответствовать только и только на точных аналогах в вашем предложении, разделите ваше предложение на любые пробелы (\\s+
regex) и попытайтесь сопоставить каждое слово предложения с элементами в ключевых словах.
Вы можете построить захват зависимости таким образом, чтобы у вас была HashMap, где kewords - это ключи, а значения - это наборы предложений, ссылающиеся на это ключевое слово.
В конце концов, вы можете получить что-то вроде этого:
[Keyword="Stackru"]
[Values=
"I like posting on Stackru.",
"Stackru is cool."
]
[Keyword="posting"]
[Values=
"I like posting on Stackru."
]
Вы можете использовать сканер, чтобы прочитать файл и получить непосредственно слова.
Вы можете загрузить все ключевые слова для сравнения в TreeSet, а затем, если найдёте, написать в FileWriter.