TLDR:如何使用 ML 自动分配可能的最佳权重,以便我的算法知道每个特征的价值多少,以根据训练数据做出决策?
大家好!
我的项目:
我正在使用 Python 创建一个产品标题缩短算法,该算法执行以下操作:
INPUT: 3.5mm Jack Wireless Bluetooth-compatible 5.0 Receiver Adapter Wireless Aux Receiver Adapter For Headphone PC Music MP3
OUTPUT (60 chars max): 3.5mm Wireless Bluetooth 5.0 Adapter for Headphone
除了我正在使用的标题是葡萄牙语。该程序通过一个基于标题语法分割的简单 NLP 算法来实现这一点,这意味着它本质上将标题拆分为名词块,然后在适当的情况下智能地将这些块合并在一起以产生新的块。
在标题被分段后,我通过一个不完整的优先级算法运行它,到目前为止,只考虑分段长度和位置来输出最终缩短的标题,这意味着首先出现的较长的分段优先。可能需要强调的是,对于 75% 的案例,我目前拥有的非 ML 算法已经选择了最佳选择,但它没有使用我在下面描述的许多潜在相关功能中的任何一个,在我看来还有很大的提升空间。
我的问题:
我通过添加更多要考虑的特征来扩展此优先级算法,例如名词/形容词/连接词/已知词/未知词的数量、大型文本语料库(如维基百科)中的词频、所有标题中的词频、词频在产品描述等中。我还提取了每个可能的相邻单词组合以形成数百万个 N-gram,然后只保留那些重复 5 次或更多次的单词,以形成一个包含数千个术语的列表,长度范围为 2-7 个单词理论上,由于它们的重复性,应该在本质上更具描述性。
现在,这些参数太多了,我无法决定每个参数的价值。在我看来,这似乎是 ML 的完美应用!
我对机器学习的体验:
我该怎么做呢?多年前,我按照 Andrew Ng 的著名课程从头开始创建了一个神经网络,但这就是我在 ML 方面的经验。不久前,我还参加了 Kaggle 的短期入门课程。
最后的问题:
这个特定问题的最佳算法/库是什么?理想情况下,我想要一些非常强大的东西,即使它的设置不是完全微不足道的,我也可以在 Python 中运行。
多少训练样本就足够了?
还有其他提示吗?
非常感谢大家!!!