我有这行代码:
bitext = [[sentence.strip().split()
for sentence in pair if len(sentence) < 100]
for pair in zip(open(c_data), open(e_data))[:opts.num_sents]]
c_data是一个带有中文句子的文件
e_data是一个带有英语句子的文件。
bitext应该是一个包含一对英汉句子的列表,它们是相互翻译的。
因为这两个数据文件都很大,
我只想减少代码的复杂性,只考虑长度低于一定长度的句子。长度以字符来衡量。
我目前正在使用。
我的字串/词句中既有英文也有中文。
以下是问题所在:
如果句子在英语中是ALL,那么它在LUIS中工作得很好。原因很可能是因为一个句子是由不同的词组成的,这些词被一个“空格”分隔开来。
然而,在中文(繁体和简体)中,句子是由拼凑在一起,很难分开的词组成的。
例如,我可以用英语写:
I love you so much:这里有5个单词。在LUIS中,我可以选择I love you并将其转换为一个实体。稍后,当更多像I love you这样的词出现在LUIS中时,它可以很容易地识别出相关的意图。
然而,如果我用中文写:
我很喜歡你:它的意思和上面的英语一样。根据路易斯,它将被计算
我希望匹配所有标点符号,但不是像"I'm“中那样的"'”。例如,在下面的句子中:
I'm a student, but I'm also working.
^not match ^match ^not ^match
我可以使用"[[:punct:]]+“来匹配所有标点符号,但是我很难从匹配模式中排除"'”。
当然,我可以使用下面这样的东西来表示枚举,但它非常繁琐,特别是考虑到中文的标点符号也是如此。"[,.?!]“
请推荐一个更优雅的解决方案。
提前谢谢你,
于
我有一个关于c++中文件输入的问题。我希望能够创建一个字符串变量并从文件中读入一句话。我该怎么做呢?这就是我到目前为止所拥有的代码。
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string word;
ifstream fin;
// Open the file
fin.open("file.txt");
// Read in the sentence from the file
fin >
我试图比较div中文本的值(这是一个句子)。和js变量中定义的文本:
function isSame(){
s="This is a sentence."
var text1 = $('#right').text();
var t1 = text1.replace(/ /g,'').replace(/ /g, '').replace(/\<br\s*[\/]?>/gi, '').replace('\t','');
var s1
我刚开始使用nltk,已经被卡住了。我想将文本文件拆分成单独的句子,并将每个句子设置为一个变量以供以后使用。我已经处理了第一部分:
import nltk
from nltk.tokenize import sent_tokenize
text1 = open('/Users/joshuablew/Documents/myCorpus/version1.txt').read()
sent_tokenize(text1)
这会打印出每个单独的句子:
['Who was the 44th president of the United States?',
将换行符转换为空格对英语是有意义的,例如,下面的HTML:
<p>
This is
a sentence.
</p>
在浏览器中将换行符转换为空格后,我们得到以下信息:
This is a sentence.
这对英语很好,但是对汉字没有好处,因为我们在汉语中不使用空格来分隔单词。这里有一个例子(中文句子的意思与“这是一个句子”的意思相同):
<p>
这是
一句话。
</p>
我在Chrome,Safari和IE上得到以下结果.
这是 一句话。
...but我想要的是没有额外空间的以下内容:
这是一句话。
我不知道为什么浏览器不忽略换行符,如果当