lewiis
lewiis
我已在VS 2017上编译通过,开始也出现这些问题,后来经过推敲,发现是编码问题。下载的源文件都是UTF-8编码,但是如果其中有中文字符(包括注释中的),VS好像识别不了,于是就出现各种问题。解决的方法: 1)删除所有中文内容,包括注释。 或者 2)将源文件重新存为UTF-8有签名(UTF-8 with BOM),或者UTF-16。 另外,test_case.cpp中的测试用例无法通过,原因也是编码。因为其中含有中文,如 test.testEqual("我爱北京天安门", "我 爱 北京 天安门"); 必须存为非UTF-8格式才能编译,但是这个算法目前好像不支持非UTF-8。 不过可以从文件中读取文本来进行分词,已经测试通过。 编码确实是个坑,希望thulac支持更多的编码。谢谢你们的工作!
谢谢回复! 自行创建thread多次调用cut函数固然可行,但是我担心的是,多个线程并行调用cut函数会不会出问题? 例如,如果多个线程通过同一个THULAC对象的指针或者引用来调用cut函数,而cut函数中调用TaggingDecoder::segment函数,其中会对allowed_label_lists数组进行赋值,这也就意味着多个线程会对同一个数组进行读写,我在其中并未看到mutex或者其他机制,这种情况下还是线程安全的吗? 包括在刚刚提交的multiTreadCut的实现中,似乎也未看到线程同步机制,不知道是否能够确保结果的正确性?