首页 文章

机器学习的自然语言处理

提问于
浏览
0

我是自然语言处理的新手,但我在机器学习中学习了很多技术,特别是在Matlab中 . 我的一个大问题是,当我使用文本(在Matlab中)时,我们使用ML算法有三个问题:

  • 单词的数据空间不是数字,为此,我可以't use the algorithms directly. Do I need some transformation? I read about Kernel String, word embedding but I don't知道他们如何解决这个问题 .

  • 每个单词的特征数量是可变的,我的意思是,当我们获得向量时,我们可以使用下一个和前一个单词对实际单词进行POS标记,而不是所有单词都有 . 我们可以将此功能设置为0,以便在矩阵中进行计算吗?一般来说,我有一些问题需要解决依赖关系,例如向量中的语法解析 .

  • 文本中的标签由序列(句子级别)分隔 . 我们如何在向量中知道句子之间的分离?

1 回答

  • 0

    有很多方法可以将文本转换为数值 . 我已经提到了两种使用“Bag-of-words”假设的常用方法

    词袋的工作方式如下:

    假设您有三个文档,如下所示:

    Doc 1:猫跳过懒狐狸Doc 2:机器学习是人工智能的一个子领域Doc 3:那是一台喂猫机

    在这种情况下,您的数据语料库中的词汇量大小(唯一词的数量)为16,您可以将词语的索引存储在词典(python)或hashmap(java / c)中:

    1:

    2:猫

    3:跳了起来

    ...

    在这种情况下,您可以将doc 1(以最简单的密集方式)表示为V长度的向量,并存储每个单词出现的次数 .

    Doc 1:[2,1,1,1,1,1,0,0,0,...]

    您可以做的另一件事是弄清楚每个单词对每个文档的重要性,为此您可以在维基百科上阅读更多关于TF-IDF的内容 .

相关问题