对不起,标题模糊,我正在尝试查找有关不确定哪些内容的信息。我试图从单行文本中提取信息,就像进行认知分析一样,但是只是信息不是真正的地名/名称/情感等,而是产品信息。假设有一个销售人员销售手机。他可能具有以下格式的CSV / Excel文件:
Producer, Model, Price, Quantity
Huawei, P10 Lite, 100$, 10
Nokia, 3210, 1000$, 1
...
现在,即使数据结构不同,解析起来也非常容易。困难的部分是何时将其收集到一行:
Product, price, quantity
Huawei P10 Lite, 100$, 1
或者即使它是用另一种方言写的,例如如果是Huawéi而不是Huawei(我知道那个特定的例子没有太大意义,但考虑一下法国的东西)。我也不能真正地正则表达式,因为我必须将公司/产品与参考数据库中的实际公司相匹配。
甚至是一行。我一直在寻找图书馆,但找不到任何东西。我自己的想法一直是围绕着拥有某种形式的查找表,然后简单地使用.Contains()进行的,但这似乎确实很昂贵。
那么关于如何执行此操作的任何想法,库或一般做法?
编辑:显示基本原理的代码段。对于我来说,最棘手的部分是如果有100行,以一种高性能的方式执行此操作,并且可以有不同的方式来解析每个相同的值。
List<string> Companies = new List<string>(){ "Huawei", "Google", "Sony", "Apple" };
List<string> Models = new List<string>(){ "P10", "P10 Pro", "Iphone X", "Iphone XS", "Pixel" };
string cellText = "Huawei P10 Pro";
Line myLine = new Line{
Company = Companies.Where(x => cellText.Contains(x)).FirstOrDefault(),
Model = Models.Where(m => cellText.Contains(m)).FirstOrDefault()
};
Console.WriteLine("Company: " + myLine.Company + " - Model: " + myLine.Model);