【发布时间】:2013-12-21 18:35:50
【问题描述】:
我有一组给出转化率的句子,比如
- 10,000 东西 ∫1
- ∫1 代表 10k SMTH
- 1200 ∫0.1 的东西
- 3000 秒卖 3∫
所有这些句子都显示了虚构货币某物 (SMTH) 与虚构单位 ∫ (INTEGRAL) 的比率。我需要一些方法来提取这两个单位之间的转换率。困难在于数字可以采用不同的格式(10,000 或 10000 或 10k),单位可以不同的写法(something, SMTH 和不同的大小写),单位的顺序不同(“x SMTH for ∫x”或“∫x对于 x SMTH"),有时单位写为 ∫x 或 x∫。
TL;DR:以某种方式将上述字符串格式化为数学关系,但要注意许多不同的格式。
我知道这有很多问题要问,而且相当复杂。如果已经有类似的问题,我很乐意看看。
你问什么语言?最好是 PHP 或 JS,但伪代码是一个好的开始
编辑:
var val = get sentence,
integral,
something;
val = val.replace(",", "").replace("k ", "000 ").replace("m ", "000000 ").replace("million ", "000000 ").replace(" million ", "000000 ").replace(" something", "SMTH").replace(" smth", "SMTH");
words = val.split(" ");
for (var i = 0; i < words.length; i++) {
if (words[i].indexOf("$")!==-1) {
integral = words[i].replace("∫" , "");
} else if (words[i].indexOf("SMTH")!==-1) {
something = words[i].replace("SMTH" , "");
}
}
简化的 javascript/伪代码
【问题讨论】:
-
它确实是一种具有单词结构的句子。为了钱的东西。钱买东西。翻译这个似乎有很多障碍。
-
有,我尝试用一个关键字替换每次提及一种货币以统一提及货币,然后尝试将不同的数字格式化为“真实”数字。这使它更简洁一些,但您仍然需要整理所有填充词,例如“for”或“selling”:(
标签: javascript php regex parsing string-parsing