#python #npl #spellchecking #bayes
А, понял, в чём дело. Я почему-то думал, что расстояние Левенштейна учитывает перестановки, а на самом деле туда входят только замены, вставки, удаления. Тогда действительно Dubai->Cuba это замена и удаление, Dubai->Dubia это удаление и вставка. + contextualSpellCheck при сравнении кандидатов не учитывает регистр, так что d и D у него различные символы. Что мне нужно, так это более общее расстояние Дамерау-Левенштейна, которое уже учитывает свопы.
От Берта кандидаты приходят с такими вероятностями: ('Cuba', 0.00026), ('Dubai', 0.00017). contextualSpellCheck из представленных кандидатов выбирает ответ наиболее похожий на саму опечатку. Хотя в докстринге они говорят "At present using a library to calculate edit distance between actual word and candidate words. Candidate word for which edit distance is lowest is selected. If least edit distance is same then word with higher probability is selected by default", это неправда, на вероятности в методе candidate_ranking вообще не смотрят. Мы могли бы пойти тем же путём и получить правильный ответ, но это ненаучно, и было бы, видимо, просто везением ) Не зря же Берты тренировались на огромных массивах текстов? Давайте посмотрим, кто победит, если мы будем рассматривать Бертовы вероятности как априорные, а текстовые схожести (в смысле Дамерау-Левенштейна) кандидата и опечатки как вероятность B/A что правильный ответ - это кандидат A, при том что человек напечатал B. Мне всё-таки интересно, в Дубай сложнее визу получить, или на Кубу?
В нашем случает полную вероятность P(B) вычислять не надо, она константна для всех кандидатов и на аргмакс не влияет. Получается, нам надо выбрать кандидата с максимальным произведением вероятности Берта на похожесть с опечаткой. Строго говоря, Бертовы вероятности можно еще нормировать на сумируемость к единице, т.к. у нас ограниченная выборка кандидатов из всего словаря, но это опять же будет константа, и на выбор не повлияет.
А, понял, в чём дело. Я почему-то думал, что расстояние Левенштейна учитывает перестановки, а на самом деле туда входят только замены, вставки, удаления. Тогда действительно Dubai->Cuba это замена и удаление, Dubai->Dubia это удаление и вставка. + contextualSpellCheck при сравнении кандидатов не учитывает регистр, так что d и D у него различные символы. Что мне нужно, так это более общее расстояние Дамерау-Левенштейна, которое уже учитывает свопы.
От Берта кандидаты приходят с такими вероятностями: ('Cuba', 0.00026), ('Dubai', 0.00017). contextualSpellCheck из представленных кандидатов выбирает ответ наиболее похожий на саму опечатку. Хотя в докстринге они говорят "At present using a library to calculate edit distance between actual word and candidate words. Candidate word for which edit distance is lowest is selected. If least edit distance is same then word with higher probability is selected by default", это неправда, на вероятности в методе candidate_ranking вообще не смотрят. Мы могли бы пойти тем же путём и получить правильный ответ, но это ненаучно, и было бы, видимо, просто везением ) Не зря же Берты тренировались на огромных массивах текстов? Давайте посмотрим, кто победит, если мы будем рассматривать Бертовы вероятности как априорные, а текстовые схожести (в смысле Дамерау-Левенштейна) кандидата и опечатки как вероятность B/A что правильный ответ - это кандидат A, при том что человек напечатал B. Мне всё-таки интересно, в Дубай сложнее визу получить, или на Кубу?
В нашем случает полную вероятность P(B) вычислять не надо, она константна для всех кандидатов и на аргмакс не влияет. Получается, нам надо выбрать кандидата с максимальным произведением вероятности Берта на похожесть с опечаткой. Строго говоря, Бертовы вероятности можно еще нормировать на сумируемость к единице, т.к. у нас ограниченная выборка кандидатов из всего словаря, но это опять же будет константа, и на выбор не повлияет.
Wikipedia
Расстояние Левенштейна
Расстояние Левенштейна (редакционное расстояние, дистанция редактирования) — метрика, измеряющая по модулю разность между двумя последовательностями символов. Она определяется как минимальное количество односимвольных операций (а именно вставки, удаления…
#python #npl #spellchecking #bayes
Итак, после нескольких часов допиливания конструктор contextualSpellCheck обзавёлся несколькими новыми параметрами:
top_n (int, optional): suggestions from underlying ANN model to be considered. Defaults to 10.
lowercased_distance (bool, optional): lowercase candidates before computing edit distance. Defaults to True.
damerau_distance (bool, optional): additionally account for symbol swaps when calculating a distance. Defaults to True.
bayes_selection (bool, optional): use bayes reasoning when selecting the best candidate. Bert probabilities are the prior, textual similarities of candidates to the input are treated as the probabilities B/A that the corect candiadte is A, while the input was B. Defaults to True.
ranked_bert_probs (bool, optional): use ranked probs as oppposed to the absolute probs values coming from Bert. Defaults to True.
И я научил электронного болвана понимать, что имелась в виду виза в Дубай. 😁
Итак, после нескольких часов допиливания конструктор contextualSpellCheck обзавёлся несколькими новыми параметрами:
top_n (int, optional): suggestions from underlying ANN model to be considered. Defaults to 10.
lowercased_distance (bool, optional): lowercase candidates before computing edit distance. Defaults to True.
damerau_distance (bool, optional): additionally account for symbol swaps when calculating a distance. Defaults to True.
bayes_selection (bool, optional): use bayes reasoning when selecting the best candidate. Bert probabilities are the prior, textual similarities of candidates to the input are treated as the probabilities B/A that the corect candiadte is A, while the input was B. Defaults to True.
ranked_bert_probs (bool, optional): use ranked probs as oppposed to the absolute probs values coming from Bert. Defaults to True.
И я научил электронного болвана понимать, что имелась в виду виза в Дубай. 😁
#python #npl #spellchecking #bayes
Вот разбивочка, как Байесовский метод приходит к выводу, что подразумевался Дубай.
Вот разбивочка, как Байесовский метод приходит к выводу, что подразумевался Дубай.
#python #npl #spellchecking #bayes
Это мы брали ранговые оценки вероятностей, для смягчения приора. Если же сильно поверить Берту и взять абсолютные оценки, Дубай улетает за первую десятку. Я не знаю, если честно, насколько хорошо Берты откалиброваны по вероятностям, может, @tech_priestess подскажет?
По итогу внёс в либу contextualSpellCheck предложение новой функциональности. А ну как удастся прокрасться в контрибьюторы почти что Spacy. )
Это мы брали ранговые оценки вероятностей, для смягчения приора. Если же сильно поверить Берту и взять абсолютные оценки, Дубай улетает за первую десятку. Я не знаю, если честно, насколько хорошо Берты откалиброваны по вероятностям, может, @tech_priestess подскажет?
По итогу внёс в либу contextualSpellCheck предложение новой функциональности. А ну как удастся прокрасться в контрибьюторы почти что Spacy. )
#ml #masters #bayes #hypothesistesting
Ещё интересные мысли.
"Many applications require not only a prediction but a measure of confidence in the decision as well. Some developers prefer a hypothesis-testing approach, while others favor Bayesian methods. The truth is that whenever possible, both methods should be used, as they provide very different types of information. And most people ignore a critical additional step: computing confidence in the confidence figure!"
"Often, an essential part of development is estimating model parameters for examination. The utility of these estimates is greatly increased if you can also compute the bias and variance of the estimates, or even produce confidence intervals for them."
Ещё интересные мысли.
"Many applications require not only a prediction but a measure of confidence in the decision as well. Some developers prefer a hypothesis-testing approach, while others favor Bayesian methods. The truth is that whenever possible, both methods should be used, as they provide very different types of information. And most people ignore a critical additional step: computing confidence in the confidence figure!"
"Often, an essential part of development is estimating model parameters for examination. The utility of these estimates is greatly increased if you can also compute the bias and variance of the estimates, or even produce confidence intervals for them."
#abtesting #bayes #growthbook
В докладе понравился синтетический тест frequentist vs bayes. Хотя, говорят, сравнение было некорректно из-за разной "стороннести" подходов.
https://www.youtube.com/watch?v=fBXPX7NswYY
В докладе понравился синтетический тест frequentist vs bayes. Хотя, говорят, сравнение было некорректно из-за разной "стороннести" подходов.
https://www.youtube.com/watch?v=fBXPX7NswYY
YouTube
Кристина Лукьянова - Байесовский подход к АБ-тестам на примере теста конверсии
Скачать презентацию: https://drive.google.com/file/d/179KsS5uoPpUdvfcYvyQ29R3sHDUXOuxR/view?usp=drive_link
Кристина Лукьянова, бизнес-аналитик в компании Glowbyte, выступит с вводным докладом о байесовском подходе к АБ-тестированию на нашей секции Reliable…
Кристина Лукьянова, бизнес-аналитик в компании Glowbyte, выступит с вводным докладом о байесовском подходе к АБ-тестированию на нашей секции Reliable…