![]() |
1
4
首先,我们需要一种计算机能够识别单词的方法,否则它就无法选择正确的单词。这意味着在这个阶段,我们需要决定我们要从什么开始教计算机(即什么是动词、名词、语法),但我假设我们会将一本词典放入其中,除了单词本身之外,不提供任何信息。 为了让计算机能够计算出句子是什么,我们需要将它们转换成数字(一种方法是从1开始按字母顺序工作,将它们用作字典的键(这次是数字(!))将单词作为值)。现在我们可以将同样的线性代数技术应用于这个问题,就像其他任何问题一样。 因此,我们需要将几代权重矩阵相乘到字典的键中,然后移除字典键范围之外的所有权重,其余的可以用来获取字典中的值并生成一个句子。也可以选择使用阈值来获取矩阵乘法的所有输出 现在来看最难的部分:学习。一旦你有了几个(比如100个)矩阵,我们就需要“培育”最好的矩阵(这是需要人工干预的地方),你需要挑选50个最有意义的句子(一开始可能很难),并用它们来为你接下来的100个矩阵打下基础(最简单的方法是随机加权50个矩阵的加权平均值100次)。 令人厌烦的是,不断重复几代人,直到你的句子大部分时间都是有意义的(当然,不能保证它总是有意义的,但这是安的本性) 如果你发现它不起作用,你可以使用更多的层(更多的矩阵)和/或我最近听说的一种动态改变网络的不同技术,但我真的无能为力。 |
![]() |
2
3
有一个
创建一个字典,其中每个单词表示一个数字(0表示“无”,1表示“句子开头”,2表示“句子结尾”)。
记住添加
将所有句子转换为索引序列:
使用keras函数将其转换为分类词
单独的培训输入和输出数据:
让我们创建一个基于LSTM的模型,该模型将根据前面的单词预测下一个单词:
编译此模型并使其适合
使用创建相同的模型
传递训练模型的权重:
以分类的方式创建您的包,塑造
使用该模型从
这个
再次执行相同操作,但现在输入
重复这个过程直到你得到一个句子。请注意,您可能会发现
|
![]() |
user9092346 · NLTK-标记后连接专有名词 6 年前 |
![]() |
ArchivistG · 尝试使用re将3个结果打印到表中 7 年前 |
![]() |
Ovaflow · 计算句子中的特定单词 7 年前 |
![]() |
Sandy · 使用pandas从字符串生成N-gram 7 年前 |
|
Freakant · NLTK。检测句子是否是疑问句? 7 年前 |