Как определить несколько языков в одной строке?
Есть несколько API-интерфейсов в Java, а также в Python, а также пробовал некоторые онлайн-демонстрации, но все API-интерфейсы принимают предложение в целом и дают общий возможный язык. В моем случае, у меня есть несколько языков в одной строке, которые должны быть обнаружены, и языки, кроме английского, должны быть исключены, сохраняя при этом смысл предложений без изменений.
Примеры:
- Сейф для септиков. Без опасности для сепсиса. Хранить в прохладном сухом месте. Ranger dans un endroit frais et sec.
- 4X КОНЦЕНТРАЦИЯ ДЛЯ ЧИСТОГО ЛУЧШЕГО * 4X PLUS CONCENTRÉ POUR MIEUX NETTOYER*
- БЕСПЛАТНЫЙ ФОСФАТ
- Импортировано для / Importé pour PROCTER & GAMBLE INC., ТОРОНТО, НА M5W 1C5
1 ответ
Я считаю, что направление, которое вы выбрали, читая комментарии, является лучшим решением: "Я попытался - разбить все предложение на слова и проверить язык для каждого слова". Однако вы должны рассмотреть возможность разработки алгоритма пакета слов.
Проще говоря, вы будете подсчитывать вхождения всех слов в предложении и сохранять их в списке с указанием того, к какому языку они относятся. Однако, так как вы обнаруживаете несколько языков в одном предложении, которое может разделять слова, вам потребуются несколько списков, список, в котором больше всего встречается слов (ов) языков, будет определять язык каждой части предложения.
This is an English sentence written in english,dans un endroit frais et sec
[english:english:2][this:english:1][is:english:1][an:english:1][sentence:english:1][written:english:1][in:english:1]
[dans:french:1][un:french:1][endroit:french:1][et:french:1][sec:french:1]
this->beginning->list index 0, sentence->end of english->list index 3
Однако это может привести к ошибкам в ваших примерах, так как чем меньше пространство выборки, тем более неточный результат:
Сейф для септиков. Без опасности для сепсиса. Хранить в прохладном сухом месте. Ranger dans un endroit frais et sec. (Все слова встречаются только один раз, что не поможет определить язык по количеству слов, только по сумме языка, к которому они последовательно принадлежат)
В любом случае, надеюсь, что это имеет смысл, и надеюсь, что это поможет вам найти решение. Не стесняйтесь комментировать, и я постараюсь помочь вам с вашими вопросами.