Определите сложность английского слова

Я работаю на основе слова. В моей базе данных содержится около 10 000 английских слов (отсортировано по алфавиту). Я планирую иметь 5 уровней сложности в игре. Уровень 1 показывает самые легкие слова, а уровень 5 показывает наиболее сложные слова, относительно говоря.

Мне нужно разделить список 10 000 длинных слов на 5 уровней, начиная с самых простых слов до сложных. Я ищу программу, которая сделает это для меня.

Может ли кто-нибудь сказать мне, есть ли алгоритм или метод для количественного измерения сложности английского слова?

У меня есть некоторые мысли, вращающиеся вокруг, используя "длину слова" и "частоту слов" в качестве факторов, и придумывают формулу или что-то, что это делает.

Ответ 1

Получить большой корпус текстов (например, из архивов Гутенберга), провести прямой анализ частоты и получить результаты в результатах поиска. Если они не выглядят удовлетворительными, весйте каждый текст с помощью Flesch-Kincaid и повторите анализ снова - слова, которые часто появляются, но в "сложные" тексты получат повышение баллов, что вам и нужно.

Если все, что у вас есть, составляет 10000 слов, скорее всего, быстрее будет выполнять сортировку по частоте в качестве первого прохода, а затем настроить результаты вручную.

Ответ 2

Я согласен, что частота использования является наиболее вероятной метрикой; существуют исследования, поддерживающие высокую корреляцию между частотой слов и сложностью (правильные ответы на тесты и т.д.). Ознакомьтесь с английским проектом Lexicon http://elexicon.wustl.edu/ для некоторых слов с частотой до 70 тыс. (?).

Ответ 3

Я не понимаю, как используется частота... если бы вы сканировали газету, я уверен, что вы увидите слово "полностью", упомянутое гораздо чаще, чем слово "bop" или "moo", но это не означает, что это более легкое слово; напротив, "основательно" является одной из самых отвратительных абсурдных орфографических аномалий, которые дают кошмарам школьных классов...

Попробуйте объяснить разумному человеку, изучающему английский как второй язык, тонкую разницу между убоем и смехом.

Ответ 4

Сложность - довольно аморфная концепция. Если у вас нет четкого представления о том, чего вы хотите, возможно, вы можете взглянуть на алгоритм строгания Портера (см., Например, оригинальную бумагу ), Это содержит более продвинутую идею "длины", определяя слова как имеющие вид [C](VC){m}[V]; C означает блок согласных, а V - блок гласных, и это определение говорит, что слово является необязательным C, за которым следуют m блоков VC и, наконец, необязательный V. Значение m - это расширенная длина.

Ответ 5

в зависимости от типа игры определение "трудное" изменится. Если ваша игра включает в себя быстро набирать текст (ztype -style...), "трудный" будет иметь другое значение, чем в игре, где вы необходимо определить значение слова.

Тем не менее, у Scrabble есть способ измерить, как "сложно" слово, которое также довольно легко алгоритмически.

Также вы можете определить определение "трудное" с точки зрения вашей игры. Вы можете протестировать свою игру и классифицировать слова в соответствии с тем, как "трудные" игроки находят их в контексте вашей собственной игры.

Ответ 6

Ответьте на источник.

  • Создайте онлайн-игру, в которой перечислены 10 слов в случайном порядке.
  • Попросите игрока перетащить их в самое легкое - самое сложное, и отметьте галочкой, чтобы указать, слышал ли игрок о слове.
  • Примените алгоритм ранжирования (например, ELO) к результату каждого эксперимента.
  • Повтор.

Это может быть даже забавно играть, вы можете получить оценку владения языком в конце.

Ответ 7

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

Ответ 8

Длина слова - хороший индикатор, для частоты слов вам нужны данные, поскольку алгоритм, очевидно, не может определить его сам по себе. Вы также можете использовать какой-то выигрыш, как игра с царапинами: каждая буква имеет значение, а окончательное значение будет суммой значений. Было бы проще найти частотные данные о каждой букве на вашем языке.

Ответ 9

В своей статье о коррекции заклинаний Питер Норвиг использует словарь для подсчета количества вхождений каждого слова (и, следовательно, определения их частоты).

Вы можете использовать это как ступеньку:)

Кроме того, частота должна, вероятно, влиять на сложность больше, чем на длину... вам нужно было бы проверить бета-версию игры.

Ответ 10

В дополнение к метрикам, таким как Flesch-Kincaid, вы можете попробовать подход, основанный на Dale-Chall формула чтения, используя списки слов, которые знакомы читателям определенного уровня способности.

Реализации многих формул читаемости содержат код для оценки количества слогов в слове, что также может быть полезно.

Ответ 11

Я бы догадался, что класс, в котором слово вводится в нормальную студенческую лексику, является мерой сложности. Следующим будет количество нарушений стандартного правила. Значение ваших слов, которые имеют правописание или произношение, которые, по-видимому, нарушают нормальные правила. Наконец.. смысл.. может быть жесткой концепцией... например... попробуйте объяснить абстракцию тому, кто никогда не слышал этого слова.

Ответ 12

Частота слов - это очевидный выбор (конечно, не идеальный). Вы можете скачать Google n-grams V2 здесь, которая является лицензией в соответствии с лицензией Creative Commons Attribution 3.0 Unported.

Формат: ngram TAB year TAB match_count TAB page_count TAB volume_count NEWLINE

Пример:

введите описание изображения здесь

Corpus использовал (от Lin, Yuri и др.) Синтаксические аннотации для книг Google ngram corpus." Материалы ACL 2012 системные демонстрации. Ассоциация по вычислительной лингвистике, 2012.):

введите описание изображения здесь