- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道我是否正确理解了在自然语言处理中使用世界嵌入的想法。我想向您展示我的看法,并询问我的解释是否正确。
假设我们想要预测句子是肯定的还是否定的。我们将使用在维度等于 100 的非常大的文本语料库上准备的预训练词嵌入。这意味着对于每个词我们有 100 个值。我们的文件如下所示:
...
new -0.68538535 -0.08992791 0.8066535 other 97 values ...
man -0.6401568 -0.05007627 0.65864474 ...
many 0.18335487 -0.10728102 0.468635 ...
doesnt 0.0694685 -0.4131108 0.0052553082 ...
...
显然我们有测试和训练集。我们将使用 sklearn 模型来拟合和预测结果。我们的火车组看起来是这样的:
1 This is positive and very amazing sentence.
0 I feel very sad.
测试集包含如下句子:
In my opinion people are amazing.
我主要对输入数据的预处理有疑问。我想知道是否应该这样做:
我们对所有句子进行标记化、删除停用词、小写等。因此,对于我们的示例,我们得到:
'this', 'is', 'positive', 'very', 'amazing', 'sentence'
'i', 'feel', 'very', 'sad'
'in', 'my', 'opinion', 'people', 'amazing'
我们使用pad_sequences
:
1,2,3,4,5,6
7,8,4,9
10,11,12,13,5
此外,我们检查训练集和测试集中最长句子的长度。假设在我们的例子中最大长度等于 10。我们需要所有向量具有相同的长度,因此我们用零填充其余字段。
1,2,3,4,5,0,0,0,0,0
6,7,4,8,0,0,0,0,0,0
10,11,12,13,5,0,0,0,0,0
现在最大的疑问 - 我们将单词嵌入 word2vec 文件中的值分配给训练集和测试集准备好的向量中的所有单词。
我们的词嵌入 word2vec 文件如下所示:
...
in -0.039903056 0.46479827 0.2576446 ...
...
opinion 0.237968 0.17199863 -0.23182874...
...
people 0.2037858 -0.29881874 0.12108547 ...
...
amazing 0.20736384 0.22415389 0.09953516 ...
...
my 0.46468195 -0.35753986 0.6069699 ...
...
例如,'in', 'my', 'opinion', 'people', 'amazing'
等于 10,11,12,13,5,0, 0,0,0,0
我们得到这样的表的表:[-0.039903056 0.46479827 0.2576446 ...],[0.46468195 -0.35753986 0.6069699 ...],[0.237968 0.17199863 -0.23182874 ...],[0.2037858 -0。 29881874 0.12108547 ...],[0.20736384 0.22415389 0.09953516 ... ],0,0,0,0
最后我们的火车组看起来是这样的:
x y
1 [0.237968 0.17199863 -0.23182874...],[next 100 values],[next 100 values],[...],[...],0,0,0,0,0,
0 [...],[...],[...],[...],[...],[...],[...],0,0,0
1 [...],[...],[...],[...],[...],0,0,0,0,0
...
测试集看起来是这样的:
y
[100 values],[...],[...],[...],0,0,0,0,0,0
...
在最后一步中,我们使用 sklearn 模型来训练我们的模型:
LogisticRegression().fit(values from y column of train set, values from x column of train set)
然后我们预测数据:
LogisticRegression().predict(values from y column of test set)
上面我描述了整个过程,并给出了最让我疑惑的具体步骤。我请你指出我在推理和解释中所犯的错误。我想确保我理解正确。预先感谢您的帮助。
最佳答案
逻辑回归接受 X 输入的平面二维矩阵,但您试图向其中提供一个奇怪的坚固结构 - 这是行不通的。
我建议一个更简单的解决方案 - 只需使用句子中每个单词的平均嵌入作为逻辑回归的输入。在这种情况下,该输入将具有规则的形状并且相对较小。如果你想改进这个公式,你可以对这个平均值进行加权(例如通过 TF-IDF)。
如果您想将句子建模为嵌入序列,则需要比逻辑回归更复杂的模型 - 例如循环神经网络。
关于python - 我是否很好地理解词嵌入(例如逻辑回归)的使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50659994/
我有以下案例要解决。 在短语中突出显示关键字的 Javascript 方法。 vm.highlightKeywords = (phrase, keywords) => { keywords =
我要匹配文本中的所有美元符号单词。例如,"Hello $VARONE this is $VARTWO"可以匹配$VARONE和$VARTWO。 正则表达式应该是/\$(\w+)/g,但是当我在Dart
在 redux 中,对于将状态作为参数、更改状态并返回新状态的特定操作,您会在 switch 语句中调用什么函数? function reducer(state = DEFAULT_STATE, ac
在 MySQL 5.1 中,我将一个字段命名为“Starting”。但是,每次我使用 SQL 查询时,它都会说无效的 SQL 语法。经过一些谷歌搜索,我发现 STARTING 是一个保留的 SQL 词
我必须使用函数 isIn(secretWord,lettersGuessed) 从列表中找到密码。在下面发布我的代码。 def isWordGuessed(secretWord, lettersGue
一段时间以来,我一直无法找到两个字符串中最长的常用词。首先我想到了用“isspace”函数来做这件事,但不知道如何找到一个常用词。然后我想到了“strcmp”,但到目前为止我只能比较两个字符串。我在想
我目前正在尝试制作一种“单词混合器”:对于两个给定的单词和指定的所需长度,程序应返回这两个单词的“混合”。然而,它可以是任何类型的混合:它可以是第一个单词的前半部分与第二个单词的后半部分相结合,它可以
如果 After 之后(逗号之前)没有 -ing 词,我想匹配它。所以 After 和逗号之间不应该有 -ing 词。 所需的匹配项(粗体): After sitting down, he began
我一直在试验 Stanford NLP 工具包及其词形还原功能。我很惊讶它如何使一些词词形还原。例如: depressing -> depressing depressed -> depressed
js 并尝试根据 [这里] 中的示例代码来做词云:https://github.com/jasondavies/d3-cloud .我想做的是单词的字体大小是基于数组中单词的频率。例如我有 [a,a,
我正在处理一个文本分类问题(在法语语料库上),并且正在试验不同的词嵌入。我对 ConceptNet 提供的内容非常感兴趣,所以我决定试一试。 我无法为我的特定任务找到专门的教程,所以我听取了他们的建议
当我在文本中搜索时,我输入 C-s,然后输入单词,然后一次又一次地输入 C-s,光标前进到找到的单词的下一个位置。问题是,一旦我转到下一个单词,我无法在按钮处编辑迷你缓冲区中的搜索单词,如果我按 Ba
我正在尝试按照以下结构运行这个 maven Hello Word: ├── pom.xml └── src └── Main.java 使用pom.xml设置: 4.0.0
所以,从我可以开始的.. 我正在使用 OCR。该脚本非常适合我的需要。它检测单词的准确性对我来说还可以。 这是结果:附加图像 100% 准确。 from PIL import Image import
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想要改善这个问题吗?更新问题,以便将其作为on-topi
这是细节,但我想知道为什么会这样。 示例代码: Class klasa = Enum.class; for(Type t : klasa.getGenericInterfaces()) Syst
我在用: var header = ""+ "Export HTML to Word Document with JavaScript"; var footer = ""; /
我有一个程序可以像这样将数据打印到控制台(以空格分隔): variable1 value1 variable2 value2 variable3 value3 varialbe4 value4 编辑:
我有一个程序可以像这样将数据打印到控制台(以空格分隔): variable1 value1 variable2 value2 variable3 value3 varialbe4 value4 编辑:
最近我在查看与goliath相关的一些代码时,偶然在Ruby代码中看到了这个词use。 , 中间件等。看起来它不同于include/extend, and require. 有人可以解释为什么存在这个
我是一名优秀的程序员,十分优秀!