определение языка в строке

gofman

Новичок
определение языка в строке

есть текст в utf-8, он всегда пишется на разных языках.

возможно ли определить на каком языке написан текст в строке?
 

zerkms

TDD infected
Команда форума
взять словари всех языков мира и посмотреть в каком из словарей больше слов, входящих в строку? ;)
 

gofman

Новичок
да уж...

сам вижу решение только - сравнивать вхождение символов.

по поводу количества слов - хорошее замечание.

-~{}~ 09.01.07 14:56:

Гравицапа собираю базу текстов для дальнейшего анализа. нужно отсортировать.
 

Wicked

Новичок
наборы символов дадут тебе информацию только об алфавитах из разряда http://www.unicode.org/Public/UNIDATA/Blocks.txt . Заметь, что там нету, например, русского языка, а есть только кириллический алфавит, в который входит полтора десятка языков.
И болгарский от русского ты отличить толком уже не сможешь.
 

phprus

Moderator
Команда форума
Wicked
В теме на которую сослался SiMM я привел ссылку на таблици принадлежнасти букв к языкам, а не к алфивитам. А основываясь на этой информации можно примерно определить список языков, на которых мог быть написан этот текст(слово).
 

Wicked

Новичок
phprus
Знание алфавита тоже позволяет "примерно определить список языков, на которых мог быть написан этот текст(слово)", может, разве что, менее точно, чем в твоем случае. Например, ни один из этих методов не сможет распознать язык текста на болгарском языке.
 

phprus

Moderator
Команда форума
Wicked
Тогда можно анализировать встречаемость последовательностей из 2 - 3 букв (помню, что этот метод вроде как то называется, но не помню как). Это еще сильнее увеличит точность определения языка.

В той мне в моей задаче это было не нужно. Мне было достаточно точности которую дает анализ по таблице принадлежности букв к языкам.
 

Krishna

Продался Java
Я лично не понимаю, какое отношение эта задача имеет к программированию?
 

Rin

*
Если тема еще не "протухла", то вот еще ссылки по теме:
http://en.wikipedia.org/wiki/Language_identification

Реализация на Perl

languid.cantbedone.org

72 (including such languages as pig latin, klingon, and both ukrainian and ukranian). The author writes: I've been a big fan of TextCat, and wanted to see what happened if I combined the same algorithm for n-gram based identification with some intelligence about Unicode. The result is a Unicode-friendly language identifier that makes some initial guesses based on script block. It relies on proper UTF-8 input to be happy.

Реализация на PHP

http://pear.php.net/package/Text_LanguageDetect

Класс путает русский с хорватским. :(

Реализация на Python

http://jones.ling.indiana.edu/~dcavar/lid/
 
Сверху