Python 如何用机器学习从句子中识别某些单词?

Python 如何用机器学习从句子中识别某些单词?,python,machine-learning,nlp,Python,Machine Learning,Nlp,这就是问题所在:我有各种商品的名称列表。列表(python 2.7)通常如下所示: ''' [‘10部苹果手机’、‘20W LED灯泡’、‘徽章’™ - 450平方英尺便携式空调“,“Jack Black双层面部保湿霜SPF 20”,“苹果”] ''” 所有项目都是字符串。列表中的项目完全是随机的,彼此之间没有明显的联系 现在我想从每个字符串中提取的是项目本身,没有描述。例如,“10部苹果手机”变成了“手机”;“徽章™ - 450平方英尺的便携式空调“变成了“空调”,而列表中的“苹果”只是“苹果

这就是问题所在:我有各种商品的名称列表。列表(python 2.7)通常如下所示: ''' [‘10部苹果手机’、‘20W LED灯泡’、‘徽章’™ - 450平方英尺便携式空调“,“Jack Black双层面部保湿霜SPF 20”,“苹果”] ''”
所有项目都是字符串。列表中的项目完全是随机的,彼此之间没有明显的联系

现在我想从每个字符串中提取的是项目本身,没有描述。例如,“10部苹果手机”变成了“手机”;“徽章™ - 450平方英尺的便携式空调“变成了“空调”,而列表中的“苹果”只是“苹果”(因为它就是苹果)

正确提取后的列表如下所示(理想情况下): ''' [“手机”、“灯泡”、“空调”、“面部润肤霜”、“苹果”] '''

我的第一个方法是找到所有相似的项目,并将它们放在一个组中(数据框中大约有500k个单词)。然后,我提取了一组单词的相似部分。例如,“iphonexsmax”、“3iphone4”、“两个iphone7s”和“iphone3g”将放在一个组中,算法将提取类似的部分,在本例中为“iphone”


这种算法在大约60%的情况下有效(我认为如果我对算法再优化一点,它可能会变得更好)。但我正在寻找一种不同的方法来提高准确性。任何帮助都将不胜感激。谢谢大家

这可能是命名实体识别的任务

您应该签出
spaCy

具体而言,您可以使用
spaCy
PhraseMatcher
Matcher
组件,该组件专门用于此目的


如果你问我,我真的认为机器学习不适合这个任务。你尝试过使用wordnet本体的语义相似性吗?谢谢!我去看看!