我的数据集文件看起来像
__label__ita Adesso datemi le chiavi.
__label__ara ياله من طفل محبب! يييي!
__label__eng You're a really bad bartender.
__label__epo En kiu hotelo vi restados?
__label__spa Él dijo haber perdido su vigor a los cuarenta.
__label__tat Сиңа булышмакчы идем.
__label__heb את מה פותח המפתח הזה?
__label__eng I caught a glimpse of him from the bus.
__label__eng I advise you to do that today.
__label__jpn この歌の歌い方を教えてくれますか。
__label__deu Ich habe gewusst, dass ihr Tom nicht vergessen würdet.
我正在使用此功能来解析第一列标签
def parse_labels(path):
with open(path, 'r') as f:
return np.array( list(map(lambda x: x[9:], f.read().decode('utf-8').split() )) )
因此我将行拆分并以示例方式从前缀ita
中获得__label__ita
标签,但由于某些原因而中断了
test_labels = parse_labels(args.test)
print("Test labels:%d (sample)\n%s" % (len(test_labels),test_labels[:1]) )
print("labels:%s" % test_labels)
我明白了
Test labels:71828 (sample)
[u'ita']
labels:[u'ita' u'' u'' ... u'' u'' u'']
我应该有
[u'ita',u'ara',u'eng',...]
答案 0 :(得分:1)
您的问题的标题似乎与内容不符,我正在回答正文中提出的问题。我使您的代码更具模块化,并对其进行了测试。它返回问题末尾(import Calculator from './calculator';
import Converter from './converter';
export {
Calculator: Calculator.default,
Converter: Converter.default
};
)上的所需列表:
import Utilities from './utilities';
const calculator = new Utilities.Calculator(); // I want to call it like new Calculator();
const converter = new Utilities.Converter(); // I want to call it like new Converter();
答案 1 :(得分:1)
由于语言代码在每行中都有固定的偏移量,因此可以通过列表理解来更简单地进行处理。 data.txt
是UTF-8编码的输入数据。该代码将在Python 2和3中工作:
from __future__ import print_function
import io
def parse_labels(path):
with io.open(path,encoding='utf8') as f:
return [line[9:12] for line in f]
print(parse_labels('data.txt'))
输出(Python 3):
['ita', 'ara', 'eng', 'epo', 'spa', 'tat', 'heb', 'eng', 'eng', 'jpn', 'deu']