从节点 js 中的全文中提取硬件规格



如何从节点js的全文文档中提取硬件规格(RAM,处理器,存储,连接(?是否存在一些我可以使用和配置的模块,或者我可以部分重写以满足我的需求?

/***更新

Entrando nelle specifiche, siamo ovviamente di fronte a un tablet Senza troppe pretese, equipaggiato con pannello da 7 pollici (risoluzione 1280 x 720 pixel(, SoC Bay Trail T Z3735G, 1GB di RAM e Storage flash di 16 GB.Il WinBook non supporta il 3G tuttavia offre connettività WiFi, Bluetooth oltre a supportare USB, HDMI e doppia 摄影机2 Mp。

Un prodotto davvero interessante per questo prezzo che da noi sarebbe 迪梅诺迪 50 欧元。

我想要什么

CPU: SoC Bay Trail T Z3735G
Ram: 1gb
Display: 7", 1280 x 720 pixel
Storage: 16gb
Connectivity: Wifi, Bluetooth, USB, HDMI
Photocamera: 2mp

谢谢

我认为您需要几种解决方案。您正在寻找的几个规格是足够可预测的,您可能会使用正则表达式根据上下文做出很好的猜测并捕获它们:存储,连接,相机,RAM以及显示器尺寸和分辨率。

我不确定您是尝试仅解析平板电脑的描述,还是几种设备,而是使用正则表达式首先识别哪种设备,然后设置不同的正则表达式参数以根据设备类别捕获上述属性。

更新:

例如,您可以使用此正则表达式来识别 RAM 和存储:/(d{1,4}) *(gb|mb)/gi在此链接中查看它如何与您的查询匹配。然后,只需解析每场比赛中的数字并进行有根据的猜测(即较大的数字最有可能是存储,而较小的数字是RAM(。

您也可以使用即使找不到 RAM 也返回 true 的/(d{1,4}) *(gb|mb) *(ram)*/gi。这与您的查询不匹配,因为它说 1GB di RAM,但 di 是一个您可以安全地删除的单词(意大利语的意思,对吗?

或者,类似 /(d{1,4}) *(gb|mb) *w* *(ram)*/gi 的东西会匹配您的查询,而不必完全删除 di。在链接中注意此正则表达式如何匹配 #GB 的两个实例,但只有第一个实例包含匹配中的RAM。这使得更容易识别哪个数字指的是RAM,哪个数字指的是存储。

/更新


弄清楚CPU将更具挑战性,因为这不是一个容易预测的模式。我们最近遇到了类似的问题,并使用 natural 的 .BayesClassifier() 方法将查询与它更相似的条目进行匹配。不幸的是,这意味着您需要维护一个合理最新的常用 CPU 数据库,以测试用户的查询。

像这样:

var natural = require('natural');
var classifier = new natural.BayesClassifier();
classifier.addDocument('SoC Bay Trail T Z3735G', 101);
classifier.addDocument('ARM Cortex-A5', 102);
classifier.addDocument('Intel Core i3-3217U', 103);
classifier.addDocument('AMD Micro-6400T', 104);
classifier.train();
var query = 'Entrando nelle specifiche, siamo ovviamente di fronte a un tablet senza troppe pretese, equipaggiato con pannello da 7 pollici (risoluzione 1280 x 720 pixel), SoC Bay Trail T Z3735G, 1GB di RAM e Storage flash di 16 GB. Il WinBook non supporta il 3G tuttavia offre connettività WiFi, Bluetooth oltre a supportare USB, HDMI e doppia fotocamera da 2 Mp. Un prodotto davvero interessante per questo prezzo che da noi sarebbe di meno di 50 Euro.'
var output = classifier.getClassifications(query);
console.log(output);

输出此内容:

[ { label: '101', value: 0.4 },
  { label: '102', value: 0.0125 },
  { label: '103', value: 0.0125 },
  { label: '104', value: 0.0125 } ]

当然,由于可能有数百(甚至数千(条记录需要匹配,这些value属性会小得多(我应该知道,我和我的合作伙伴正在将用户查询与 1200+ 个公交车站名称的列表进行匹配(,但在许多情况下,它应该可以帮助您确定确定匹配项。

我可以想到两种方法来帮助分类器进行更好的匹配:

  1. 为每种设备类型创建单独的分类器:这样,如果您知道您可能正在寻找平板电脑处理器,则仅与平板电脑 CPU 分类器匹配。
  2. 从用户查询中删除不必要的琐事,例如您已经通过正则表达式确定为属于其他规范的部分,以及无法帮助您识别硬件的常用词(ovviamente、support、il、interessante 等(

最新更新