Как работает Google Scribe? - PullRequest
       3

Как работает Google Scribe?

3 голосов
/ 08 сентября 2010

Я спрашиваю о новой лабораторной функции "Google Scribe".Вот ссылка: http://scribe.googlelabs.com/

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

Ответы [ 3 ]

3 голосов
/ 18 сентября 2010

Возможное предложение по реализации:

Backend: Создать и поддерживать NxNxW разреженную матрицу A (например, реализованную как Hash), где N - это размер вашего словаря, а W - максимальный контекст. (словами), который вы хотите сохранить (например, W=4 может быть в порядке.) Просмотрите некоторые примеры данных, чтобы заполнить / инициализировать A, чтобы A[n1,n2,w] подсчитывал количество раз, когда слово n2 появлялось в w позиция после слова n1 (соблюдайте границы предложения.)

Внешний интерфейс: Когда пользователь вводит текст, попросите его использовать A для оценки (и ранжирования) наиболее вероятных слов-преемников на основе последних W слов, полностью набранных пользователем в текущее предложение; показывать только те предложения, которые начинаются с того, что пользователь вводит (т. е. «текущее» (частичное) слово пользователя).

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

2 голосов
/ 19 сентября 2010

Вам необходимо использовать цепи Маркова.

Вы можете начать с поиска здесь . пример вывода тоже интересен.

1 голос
/ 19 сентября 2010

(я не уверен в этом, пожалуйста, поправьте меня, если я не прав)

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

Например:

Я печатаю: 'a'

Vocab: 'у' 'яблока' 'зверское'

Итак: «at» используется чаще всего, «apple» - второе, а «зверское» - наименее.

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

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

...