首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NLP和ML构建搜索工具和文本分类

使用NLP和ML构建搜索工具和文本分类
EN

Data Science用户
提问于 2020-02-03 13:12:55
回答 1查看 229关注 0票数 2

我是信息检索方面的新手。目前我正在读一本名为克里斯托弗·曼宁( Christopher D. Manning )和普拉巴卡尔·拉加万( Prabhakar Raghavan )著的“信息撤退导论”的书。我试图实现一个基于人工智能的搜索工具,从一个私有数据集中搜索一些相关信息。(比方说一种化学或数学数据集,它喜欢更多的数词,没有构造的散乱的度量单位表示)

下面是JSON格式的dataset中的一行,其中键是coloumn,值是对应于它的值。

代码语言:javascript
复制
  "ABC Project": {
    "In/Out diameter": " Both in and out are 1”  ",

    "Design Pressure (barG)": {
      "Max": "116 psiG (7.99 barG)",
      "Minimum": "79.7 psiG (5.49 barG)",
      "Design": "174 psiG (11.99 barG)"
    },

    "C02 %": "0.671",
    "MW": "16.68 kg/kmol",
    "TITLE": null,
    "Mothiram": "There is  very dense forest and their lived a king. The name of the king was Pandidhurai. He was very brave ",
    "Thooval delivery material": "- thooval delivery material is panam patta 316/316L  "

将从我的数据集中提取上述行的示例搜索查询如下

“分子鬼魂近16公斤/公斤,Thooval输送材料panam patta 316 L的项目,莫蒂拉姆是潘迪胡莱国王。”

我所做的一切。

预处理

将表中的每一行(例如T)读入R_{i},搜索查询作为Q执行以下预处理

  1. Convert_lower_case(数据)
  2. Remove_punctuation(数据)
  3. Remove_apostrophe(数据)
  4. Remove_single_characters(数据)
  5. Convert_numbers(数据)
  6. Remove_stop_words(数据)
  7. 堵塞(数据)
  8. Remove_punctuation(数据)
  9. 将颜色C_i的Word转换为向量,并对表R_i中的每一行进行转换
  10. 建立彩色C_i的向量空间模型,并对表R_i中的每一行进行建模
  11. 为查询Q建立向量空间模型。
  12. 计算余弦分数选择高分行

我面临的

挑战--

  1. 当我做“remove_punctuation(数据)”时,我正在失去重要的信息(比方说,"表示直径颜色中的英寸)
  2. 数据中度量单位的一种解释方法
  3. 无法保持值之间的关系(例如16.78kg/k储存在多个值中,无法找到与MW有关的值)。我认为可以通过建立一个ML分类器并训练它来识别实体MW来解决这个问题。例如<16.78kg/k,MW >,并以测量单位为特征。但也有不同化学成分的百分比组成、内外径、内外温度等数值。等
  4. 解释科学术语和映射到一个根形式(例如MW、molwt、molwt等)的困难都是表示分子量的不同方法。
  5. 难以找到数值的近似值

问题

  • 请建议我一步一步地使用这个数据集建立一个搜索工具(也请给我一个apt算法,在每一步中都是有用的)
  • 我从这里上读到,一些文档可以标记为< document,class >,并为更好的搜索性能培训一个Navie分类器模型。在这种情况下是否有可能,如果是的话,您建议的类标签是什么?更新:我认为导航基不能用于颜色或键将大于1000。我正在寻找一个可扩展的方法来解决这个问题。

  • 有没有比使用向量空间模型和计算余弦相似度更好的方法来解决这个问题?
EN

回答 1

Data Science用户

发布于 2020-02-04 14:32:56

以下是关于您的项目的一些一般想法:

据我所知,您正在尝试使用自由形式的自然语言查询从半结构化数据库中提取非常具体的信息,对吗?如果是的话,重要的是你要意识到这是一个相当雄心勃勃的项目,达到一个体面的质量阶段可能需要大量的工作,而且性能不太可能是完美的。

显然,数值和单位是匹配查询的重要信息。在这种情况下,您可能应该为这些操作实现一个特殊的过程,因为标准的文本处理不能很好地工作。

  • 检测:如果只有少量可能的方式来编写这些值,那么使用即席正则表达式可能会更有效。如果没有,您可以尝试训练自定义的纳纳模型。
  • 代表:这是棘手的部分-- imho。对于一般的文本向量是很好的,但是用向量表示这样的特殊值是困难的/不可能的。考虑到您有一个半结构化的数据库,您可能需要尝试一种更适合您的数据的语义表示:这可能涉及语义角色标注关系提取等方面的技术。
  • 匹配:语义表示的优点是您可以将查询转换为语义表示,然后应用适合您的数据的详细匹配过程(特别是您可以比较相应的数值并使用阈值,或者返回差额来表示它们的距离)。
票数 2
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/67460

复制
相关文章

相似问题

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