首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向量化单词时,如何处理文本字符串中的数字?

向量化单词时,如何处理文本字符串中的数字?
EN

Stack Overflow用户
提问于 2017-07-02 06:16:01
回答 3查看 4.9K关注 0票数 9

如果我有一个要矢量化的文本字符串,我应该如何处理其中的数字?或者,如果我向神经网络提供数字和单词,我如何才能将数字保持为数字?

我正计划为我所有的单词做一本词典(as suggested here)。在这种情况下,所有字符串都将成为数字数组。我应该如何处理数字字符?如何输出一个不混合单词索引和数字字符的向量?

将数字转换为字符串会削弱我提供给网络的信息吗?

EN

回答 3

Stack Overflow用户

发布于 2017-07-15 05:22:35

使用@user1735003扩展您的讨论-让我们考虑表示数字的两种方式:

  1. 将其视为字符串,并将其视为另一个单词,并在形成字典时为其分配ID。或者
  2. 将数字转换为实际的单词:'1‘变成’1‘,'2’变成'two‘,依此类推。

第二个改变了上下文吗?为了验证它,我们可以使用word2vec找到两个表示的相似性。如果他们有相似的上下文,分数将会很高。

例如,1one的相似性得分为0.17,2two的相似性得分为0.23。他们似乎表明,如何使用它们的上下文是完全不同的。

通过将数字视为另一个单词,您不会改变上下文,但通过对这些数字进行任何其他转换,您不能保证它会变得更好。所以,最好不要碰它,把它当作另一个词来对待。

注意word-2-vecglove都是通过将数字视为字符串进行训练的(情况1)。

票数 6
EN

Stack Overflow用户

发布于 2017-07-02 15:56:16

您提供的链接表明,从.split(' ')得到的所有内容都被编入了索引--单词,但也包括数字,可能还有表情符号。(我仍然会注意标点符号)。除非你对你的数据或你的问题有更多的先验知识,否则你可以从这个开始。

编辑

字面上使用您的字符串及其代码的示例:

代码语言:javascript
复制
corpus = {'my car number 3'}
dictionary = {}
i = 1
for tweet in corpus:
  for word in tweet.split(" "):
    if word not in dictionary: dictionary[word] = i
    i += 1
print(dictionary)
# {'my': 1, '3': 4, 'car': 2, 'number': 3}
票数 2
EN

Stack Overflow用户

发布于 2017-07-15 17:07:38

以下论文可能对您有所帮助:http://people.csail.mit.edu/mcollins/6864/slides/bikel.pdf

具体来说,第7页。

在使用<unknown>标记之前,他们会尝试将字母数字符号组合替换为常见的模式名称标记,例如:

代码语言:javascript
复制
FourDigits (good for years)

我试着去实现它,并给出了很好的结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44865840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档