【发布时间】:2010-05-17 09:24:42
【问题描述】:
如果我正在编写一个软件,尝试使用用户之前输入的两个词来预测用户将要输入的词下一个,我会创建两个表。
像这样:
== 1-gram table ==
Token | NextWord | Frequency
------+----------+-----------
"I" | "like" | 15
"I" | "hate" | 20
== 2-gram table ==
Token | NextWord | Frequency
---------+------------+-----------
"I like" | "apples" | 8
"I like" | "tomatoes" | 12
"I hate" | "tomatoes" | 20
"I hate" | "apples" | 2
按照这个例子,用户输入“I”,软件使用上面的数据库预测用户要输入的下一个词是“hate”。如果用户确实输入了“hate”,那么软件将预测用户将要输入的下一个单词是“tomatoes”。
但是,这种实现需要为我选择考虑的每个附加 n-gram 提供一个表格。如果我决定在预测下一个单词时要考虑前面的 5 或 6 个单词,那么我需要 5-6 个表,并且每 n-gram 的空间呈指数增长。
仅在一个或两个表中表示这一点的最佳方法是什么,我可以支持的 n-gram 数量没有上限?
【问题讨论】:
标签: database database-design model schema data-modeling