代码之家  ›  专栏  ›  技术社区  ›  Preston Marshall

googlescribe是如何工作的?

  •  3
  • Preston Marshall  · 技术社区  · 14 年前

    我在问有关新实验室功能“Google Scribe”的问题。以下是链接: http://scribe.googlelabs.com/

    我对后端和前端感兴趣,但主要是后端。我想用一个非常特定的数据集(来自我自己的文档)构建类似的东西。我认为它的前端相当简单,我甚至可以使用现有的autocomplete插件来完成这个任务。

    3 回复  |  直到 14 年前
        1
  •  3
  •   Tim Cooper    13 年前

    可能的实施建议:

    后端: 建立和维护一个 NxNxW A (例如,作为 Hash )在哪里 N 你的词汇量和 W 是您希望保持的最大上下文(大写)(例如。 W=4 可以。)检查一些样本数据以进行种子设定/初始化 A 以至于 A[n1,n2,w] 计算单词的次数 n2 w 字后第位 n1 (尊重句子界限。)

    前端: 当用户键入时,要求后端使用 A 根据最后一个词来评估(和排列)最可能的后继词 用户在当前句子中完全键入的单词;仅显示以用户正在键入的单词开头的建议(即用户的“当前”(部分)单词)

    M 基于用户已完成键入的单词,无论是在运行中(当用户返回执行更正时具有挑战性),还是在提交最终文本时(最简单),或者通过自上次作业运行以来提交的一些定期作业评估文本。

        2
  •  2
  •   aleemb    14 年前

    你需要使用马尔可夫链。

    here . 这个 sample output 也很有趣。

        3
  •  1
  •   TaslemGuy    14 年前

    googlescribe使用的系统(或者至少是一个非常类似的系统)基本上使用树状的数据结构来存储所有可能的单词。某种形式的搜索算法,它能根据已知的词汇量找出所有可能的方法来完成你的单词。(可能是存储在数据库中的旧搜索查询的基础)并按它们出现的频率对它们进行排序。

    例如:

    我键入:“a”

    Vocab:'苹果'太可怕了'

    所以,使用最多的是“at”,其次是“apple”,最少的是“crameous”。

    正如我所说,我不确定这是否是他们使用的系统,但它应该有类似的结果。