Stemming
При обработке естественных языков возникает множество проблем. Например не мало сложности доставляют разные формы слов, окончания и суффиксы. Если мы пытаемся классифицировать текст, то разные формы слова вызывают проблемы, т.к. по факту одно и то же слово может иметь много разных форм, но при этом нужно учитывать все его появления независимо от формы.
Помните как в школе нас заставляли находить основу слова? Так вот Stemming (Сте́мминг) это и есть выделение основы слова.
пример:
после обработки
Вообще тема довольно старая, и уже у 60-х начали появляться первые работы. И сейчас достаточно много алгоритмов для разных языков (да, по факту не получается использовать один подход для английского и русского).
Классическое применение - поиск. Там не так важны формы слова, куда важнее найти совпадения по запросу независимо от формы слова. Тут конечно сразу же напрашивается ещё несколько проблем, что нужно учитывать синонимы и контекст..
Поиграться с разными алгоритмами можно здесь http://text-processing.com/demo/stem/
Про разные алгоритмы расскажу в другой раз.
#nlp #ml
При обработке естественных языков возникает множество проблем. Например не мало сложности доставляют разные формы слов, окончания и суффиксы. Если мы пытаемся классифицировать текст, то разные формы слова вызывают проблемы, т.к. по факту одно и то же слово может иметь много разных форм, но при этом нужно учитывать все его появления независимо от формы.
Помните как в школе нас заставляли находить основу слова? Так вот Stemming (Сте́мминг) это и есть выделение основы слова.
пример:
знаменитый цикл научной фантастики
после обработки
знаменит цикл научн фантастик
Вообще тема довольно старая, и уже у 60-х начали появляться первые работы. И сейчас достаточно много алгоритмов для разных языков (да, по факту не получается использовать один подход для английского и русского).
Классическое применение - поиск. Там не так важны формы слова, куда важнее найти совпадения по запросу независимо от формы слова. Тут конечно сразу же напрашивается ещё несколько проблем, что нужно учитывать синонимы и контекст..
Поиграться с разными алгоритмами можно здесь http://text-processing.com/demo/stem/
Про разные алгоритмы расскажу в другой раз.
#nlp #ml
Text-Processing
Python NLTK Stemming and Lemmatization Demo
Stemming and Lemmatization using Python NLTK. Porter stemmer, Lancaster
Paice/Husk stemmer, WordNet lemmatization and Snowball stemmer.
Paice/Husk stemmer, WordNet lemmatization and Snowball stemmer.
Вы любите космос? А теперь представьте вселенную из понятий, большой граф связанных терминов, где каждое слово представлено точкой. Крутая интерактивная визуализация word2vec https://anvaka.github.io/pm/#/galaxy/word2vec-wiki?cx=199&cy=8&cz=207&lx=-0.2239&ly=-0.8192&lz=-0.3047&lw=0.4312&ml=300&s=1.75&l=1&v=d50_clean_small Это word2vec обученная на текстах wiki. Вы можете двигаться по этой вселенной слов, а можно найти термин и посмотреть, какие слова находятся рядом.
В основе word2vec идея, что слова можно представить в виде векторов, и похожие по смыслу слова должны быть представлены близко расположенными векторами (таким образом синонимы вектора находящиеся рядом, а антонимы будут направлены в противоположные стороны). Получив такое пространство, можно переводить тексты в числовую запись, сохранная их смысл. Это необходимо для обработки текстов с применением алгоритмов машинного обучения.
#ml #nlp
В основе word2vec идея, что слова можно представить в виде векторов, и похожие по смыслу слова должны быть представлены близко расположенными векторами (таким образом синонимы вектора находящиеся рядом, а антонимы будут направлены в противоположные стороны). Получив такое пространство, можно переводить тексты в числовую запись, сохранная их смысл. Это необходимо для обработки текстов с применением алгоритмов машинного обучения.
#ml #nlp
anvaka.github.io
Code Galaxies Visualization
Code galaxies visualization allows you to explore huge graphs of software package managers (npm, go, ruby gems, composer, etc.)