Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
6年前关闭。
我有一组给出转换率的句子,例如
∫1 10,000件
∫1适用于10k SMTH
1200∫0.1的值
以3∫的价格卖出3000 Smth
所有这些句子都显示了∫虚构单位(INTEGRAL)的虚构货币比率(SMTH)。我需要某种方法来提取这两个单位之间的转化率。困难在于数字可以采用不同的格式设置(10,000或10000或10k),单位可以用不同的方式写(东西,SMTH和大写字母不同),单位的顺序也不同(“ x x表示∫x”或“∫x” x SMTH”),有时单位写为∫x或x∫。
TL; DR:以某种方式将上述字符串格式化为数学关系,但要注意许多不同的格式。
我知道这是很多问题,而且非常复杂。如果已经有类似的问题,我很乐意研究。
您问什么语言?最好是PHP或JS,但伪代码是一个好的开始
编辑:
简化的javascript /伪代码
完成此循环后,您将拥有一个数据结构,该数据结构的两边分别是哪种货币和多少金额。
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
6年前关闭。
我有一组给出转换率的句子,例如
∫1 10,000件
∫1适用于10k SMTH
1200∫0.1的值
以3∫的价格卖出3000 Smth
所有这些句子都显示了∫虚构单位(INTEGRAL)的虚构货币比率(SMTH)。我需要某种方法来提取这两个单位之间的转化率。困难在于数字可以采用不同的格式设置(10,000或10000或10k),单位可以用不同的方式写(东西,SMTH和大写字母不同),单位的顺序也不同(“ x x表示∫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”分隔了所有示例。因此,组合不多。您可以做的是找到一个标识每种货币的单词列表,一个与数字匹配的正则表达式,然后在左侧和右侧之间用“ for”分隔。
要处理每个短语,您将执行以下伪代码:
for each word:
if it's a known currency identifier
Store what is the currency
else if it's a number
Store the value
else if it's the "for" word
Change side
end if
end for
完成此循环后,您将拥有一个数据结构,该数据结构的两边分别是哪种货币和多少金额。
10-06 06:55