All streams
Search
Write a publication
Pull to refresh
100
0
Send message
Да, сами формулы несложные. Просто хабр — не математический журнал, и здесь больше популярны практичные статьи.
Так и сделал :). Разбил на два корпуса. Стандартная, вобщем, практика. names.txt — файлик создавался шафлом по списку женских и мужских имен.

А в чем результат завышен?

Ниже — код для тестирования.

def test(classifier, test_set):
    hits = 0
    for feats, label in test_set:
        if label == classify(classifier, feats):
            hits += 1
    return hits/len(test_set)

def get_features(sample): return (
        'll: %s' % sample[-1],          # get last letter
        'fl: %s' % sample[1],           # get first letter
        'sl: %s' % sample[0],           # get second letter
        )

if __name__ == '__main__':
    samples = (line.decode('utf-8').split() for line in open('names.txt'))
    features = [(get_features(feat), label) for feat, label in samples]
    train_set, test_set = features[:-100], features[-100:]

    classifier = train(train_set)
    print 'Accuracy: ', test(classifier, test_set)
Да, хорошая книжка. Кое где поверхностно на мой взгляд, но довольно просто все объясняет.
Спасибо, почитаю.
Не знаю. Я не читал. Там похожий код?

Знаю хорошую реализацию в nltk. Но там посложнее. Я же хотел написать максимально просто и коротко.
Похоже, я перестарался с теорией :). Длинные формулы режут глаза.
Согласен.
Продадут владельцы компанию, и что дальше? У них один путь — вкладывать и создавать новые компании. Но если эта им нравится, в чем смысл продажи.

Меня всегда такие новости радуют. Потому что из этого следует что ребята любят то, чем занимаются.
Странно. Посмотрите лекции по программированию стенфорда или мит. Будут там и байты и низкоуровневое барахло. И даже, о ужас, будут рассказывать как реализовывать контейнеры. Да, сейчас и память дешевле, и железо лучше. Вот только и информации больше. В некоторых приложениях экономия нескольких бит на структуру может сильно сократить весь объем.
У вас детерминированный автомат. Но не минимальный. Вы оптимизируете только префикс.

Сравните для слов word, ward. Ваше дерево будет содержать 8 узлов и 7 ребер (две ветви), в то время как минимальный DFA 5 и 5 (между вторым и третьим состоянием две дуги).
Может быть. Тогда, возможно, вам лучше просто построить минимальный DFA.
А, похоже я понял к чему вы. Т.е. изначальная задача стоит так: Есть набор слов. Необходимо определить, есть ли набор этих слов (или регэксп) в словаре.
В этом смысле вашу идею понял, интересно. Но думаю, здесь получится некоторое дублирование работы. В момент разбора регулярки словарь построит из нее то же дерево/авомат.
Эмм… а чем тогда автомат не нравится?
На счет малой эффективности деревьев, откуда такой вывод?
Есть ощущение, что у гугла скопилась хорошая n-грамная статистика. И народ бьется над тем, к чему ж ее применить. Не пропадать же добру :).
Дык это ж Another World! *Смахивая ностальгическую слезу*
Было дело я тоже колдовал с экселем под линукс. Правда, остановился на xlwt и дописал поверх него утилитку для более простого построения. Может будет кому полезно: github.com/lightcaster/xlrep
ПробОвать, пробОвать, пробОвать! Откуда эта Ы взялась? Статья неплохая, но следите за русским.
Интересно. Скажите, а Nuance дают модель грамматики или корпусы для тренировки (или и то, и другое)? Я сейчас про распознавание.
ПарикмахЕрская… Вам есть куда расти :)
Кстати, а решение от Naunce со cфинксом (http://cmusphinx.sourceforge.net/sphinx4/) не сравнивали случаем?

Information

Rating
Does not participate
Registered
Activity