我有一个包含要分类的数据的文本文件:
facture
iphone
comment acceder
我有一个bash脚本,每行读取我的文本文件行,并使用curl将每行发送到用Python 3.4编写并在Docker容器中运行的分类器。这是脚本的代码:
old_IFS=$IFS
IFS=$'\n'
for line in $(cat file.txt) do
echo $line
curl -d q=$line localhost:8099/v2
echo $'\n'
sleep 1
done
IFS=$old_IFS
localhost:8099 / v2是Docker容器的地址。 对于每个查询,分类器打印属于已定义类的概率(在我们的示例中为3个类:辅助,执行和精品)。
让我们看一下命令的输出
curl -d q=facture localhost:8099/v2
{"classes": ["assistance"], "levels": {"assistance": 0.915, "boutique": 0.085, "actu": 0.0}}
但是,当我运行脚本时,我有这个输出:
facture
{"classes": ["boutique", "actu", "assistance"], "levels": {"boutique": 0.333, "actu": 0.333, "assistance": 0.333}}
iphone
{"classes": ["boutique", "actu", "assistance"], "levels": {"boutique": 0.333, "actu": 0.333, "assistance": 0.333}}
comment acceder
{"classes": ["assistance"], "levels": {"assistance": 0.886, "boutique": 0.113, "actu": 0.0}}
概率不正确,这使我认为脚本没有很好地读取查询。这个假设与脚本正确打印的事实相矛盾。我首先想到的是编码问题,但我的所有文件都使用utf8,终端也是如此。
所以我的问题是,在阅读文件内容时,我的脚本是否出错?
答案 0 :(得分:0)
尝试:q="facture"
?
我相信你的控制台需要假设一个字符串作为键。由于它不识别模式,它默认搜索所有模式?
答案 1 :(得分:0)
我想也许你的file.txt不是unix格式,试试执行
dos2unix file.txt
第一