首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从节点js中的全文中提取硬件规范。

从节点js中的全文中提取硬件规范。
EN

Stack Overflow用户
提问于 2014-11-30 17:18:24
回答 1查看 109关注 0票数 0

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

/***更新

示例

公司名称:specifiche specifiche,siamo ovviamente di fronte a Entrando senza troppe pretese,equipaggiato da 7 pollici (risoluzione 1280 x 720像素),SoC Bay Trail T Z3735G,1GB di RAM e闪存di 16 GB。Il WinBook非支持i3g tuttavia offre connettivitàWiFi,蓝牙oltre a支持USB,HDMI e doppia da 2MP。 联合国普罗多托达夫韦罗预每克到普雷佐切达诺亚雷培,迪梅诺迪50欧元。

我想要的

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

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-30 20:42:59

我想你需要几个解决方案。您正在寻找的一些规范是足够可预测的,您可能可以通过使用正则表达式根据上下文进行相当好的猜测并捕捉它们:存储、连接性、照相机、RAM以及显示大小和分辨率。

我不确定您是只解析平板或几种设备的描述,但是首先使用正则表达式来识别哪种设备,然后根据设备类别设置不同的regex参数来捕捉上面提到的属性。

更新:

例如,您可以使用这个正则表达式来标识内存和存储:/(\d{1,4}) *(gb|mb)/gi查看它是如何匹配查询在这个链接上。的--然后这只是一个解析每个匹配中的数字并进行有根据的猜测的问题(也就是说,较大的数字最有可能是存储,而较低的数字是RAM)。

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

或者,类似于/(\d{1,4}) *(gb|mb) *\w* *(ram)*/gi 将匹配您的查询的东西根本不必去掉di。注意,这个正则表达式如何匹配#GB的两个实例,但只有第一个实例在匹配中包含RAM。这使得识别哪个数字引用RAM和哪个表示存储更加容易。

/Update

计算出CPU将是更有挑战性的,因为这不是一个很容易预测的模式。最近,我们遇到了类似的问题,并使用自然.BayesClassifier()方法将查询与它更相似的条目匹配起来。不幸的是,这意味着您需要维护一个流行CPU的最新数据库,用来测试用户的查询。

就像这样:

代码语言:javascript
复制
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);

产出如下:

代码语言:javascript
复制
[ { label: '101', value: 0.4 },
  { label: '102', value: 0.0125 },
  { label: '103', value: 0.0125 },
  { label: '104', value: 0.0125 } ]

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

我可以想出两种方法来帮助分类器更好地匹配:

  1. 为每种设备类型建立单独的分类器:这样,如果您知道您可能正在寻找一个平板处理器,那么您只能与tablet分类器匹配。
  2. 从用户查询中删除不必要的cruft,比如您已经通过regex识别出属于其他规范的部分,以及无法帮助您识别硬件的常用单词(ovviamente、support、il、interessante等)。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27215959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档