RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1383008
Accepted
Александр Окостень
Александр Окостень
Asked:2022-07-17 20:19:03 +0000 UTC2022-07-17 20:19:03 +0000 UTC 2022-07-17 20:19:03 +0000 UTC

识别相似的 C# 短语

  • 772

正在开发一个系统来存储产品及其属性。供应商可能会收到具有相同含义属性的商品,但我们已经从数据库中获得了属性列表,我们需要定义含义相似的属性。例如属性,例如:

Цвет товара, Цвет

其中Цвет товара与 的含义相同Цвет。或者例如:

Ножи какие-то туристические, Туристические ножи

这些短语的含义应该被识别为相同,并且应该应用我需要从数据库中获取的值,这样产品属性就不会在数据库中重复。你如何在 C# 中测试这个?有什么模式或算法吗?也许锐器的功能?

c#
  • 2 2 个回答
  • 10 Views

2 个回答

  • Voted
  1. Best Answer
    EvgeniyZ
    2022-07-18T21:35:19Z2022-07-18T21:35:19Z

    如果您的预测数据是静态的,则可以将任务交给神经网络。但是这种方法有一个缺点,即数据,因为它们越多,它们越准确,神经网络的工作就越好。

    让我们展示使用 ML.Net 的最简单选项,我们甚至不必编写代码。

    1. 数据。让我们创建一个简单的文本文件,我们将在其中逐行写入我们得到的内容以及它是什么,好吧,我们将使用特定符号将其分隔:

       Окраска|Цвет
       Расцветка|Цвет
       Color|Цвет
       Весовой показатель|Вес
       Масса|Вес
       Нож туристический с фиксированным клинком|Туристические ножи
       Туристический нож Киридаши|Туристические ножи
       Скелетный нож туриста|Туристические ножи
       Стол арт. 26584|Стол
       Стол артикул 68245|Стол
       Стол красный|Стол
       Стол на металлических ножках|Стол
       Стул арт. 83576|Стул
       Стул артикул 12745|Стул
       Стул с подлокотниками|Стул
       Стул игровой|Стул
      

    如您所见,一个简单的盘子,带有一定的测试数据轮廓。

    1. 模型创建。

      1. 右键单击工作室中的项目,添加,将有“ML.Net”或现代“机器学习模型”中的任何内容 添加毫升

      2. 应该打开一个选择场景的窗口,我们对“数据分类”感兴趣。

      3. 接下来,他会问在哪台机器上进行计算(我会选择我的)。

      4. 在下一阶段,它会要求分析数据,在那里选择我们准备好的文本文件,确保一切都在盘中,并选择“要预测的列” - 神经元应该预测的列。 数据选择

      5. 下一步是开始学习过程。这种机制将循环使用相同的数据,但使用不同的算法,选择能够提供最准确结果的数据。时间——越多越好,但也取决于数据文件的大小。我会亲自运行 30 秒,因为文件只有几行。注意“最佳准确性”的值——数据越干净,数据越多,越精确,这个指标就越好,因此结果就越好。我的数据给出了所有的0.49鹦鹉,但我认为这对测试来说已经足够了。

      6. 在下一步中,您已经可以通过在此处写入输入值来尝试您的模型。

      7. 好吧,在最后阶段,他将提出创建一个控制台项目,他将在其中放置您经过训练的模型并展示如何处理它。

    2. 编码。现在让我们试试我们的模型。在创建的控制台项目中,我们可以随心所欲地更改我们想要的一切,但现在我们只对查看结果感兴趣。让我们编写这样一个简单的代码,运行它,看看它说了什么:

       using MLModel1_ConsoleApp1;
      
       while (true)
       {
           Console.Write("Текст: ");
           MLModel1.ModelInput sampleData = new()
           {
               Col0 = Console.ReadLine()
           };
      
           var result = MLModel1.Predict(sampleData);
           Console.Write($"Результат: {result.PredictedLabel}\n\n");
       }
      

    执行结果:

    文字:刀具,d2 钢,灰色手柄
    结果:户外刀具

    文本:产品
    颜色 结果:颜色

    文本:产品重量
    结果:颜色

    文本:重量
    结果:颜色

    文本:带靠背的棕色桌子
    结果:桌子

    文本:带轮子的
    椅子 结果:椅子

    文本:带水平控制的游戏桌
    结果:表格

    文字:刀
    结果:野营刀

    如您所见,即使是微不足道0.49的“鹦鹉”也给出了如此相对好的结果。椅子与桌子分开,他甚至可以通过整句话猜出它指的是什么,吞下错误,错别字。顺便说一句,注意他为“颜色”取了“权重”——这清楚地表明模型会提取数据,因为在我的文本文档中,权重只有 2 个值。因此,数据量、质量和其他指标对于神经元来说非常重要!但即使是这种形式,对于我来说,它已经比 Levenshtein 距离更好,虽然谁知道......

    • 5
  2. Andrew_STOP_RU_AGRESSION_IN_UA
    2022-07-17T23:05:10Z2022-07-17T23:05:10Z

    我会用半自动和半手动的方法来解决这个问题。

    更确切地说:

    1. 推动供应商的基地,并将所有商品与 Levenshtein 进行比较
    2. 将创建一个带有结果的 Excel 表,其中主要的第一列是个人商品数据库中的名称
    3. 由人手动走桌子
    4. 由另一个人手动交叉检查表格

    之后,创建一个分析器来计算数据库中不在表中的新产品,以便它们也将被手动重新检查,以避免将来数据库补充时出错

    我将从评论中复制到Levenshtein的链接

    可以在此处查看使用 Excel 或 CSV

    • 1

相关问题

  • 使用嵌套类导出 xml 文件

  • 分层数据模板 [WPF]

  • 如何在 WPF 中为 ListView 手动创建列?

  • 在 2D 空间中,Collider 2D 挂在玩家身上,它对敌人的重量相同,我需要它这样当它们碰撞时,它们不会飞向不同的方向。统一

  • 如何在 c# 中使用 python 神经网络来创建语音合成?

  • 如何知道类中的方法是否属于接口?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5