java字符串换行符替换成段落标记_java – 自然语言处理 – 将文本特征转换为特征向量...

这篇博客介绍了如何在Java中将字符串的换行符替换为段落标记,结合自然语言处理技术,将文本转换为特征向量,用于有监督学习。文章通过一个简单的句子结束识别例子,展示了如何创建.arff文件,并解释了如何定义特征,包括词性标签、字符长度、大小写信息等。同时,讨论了如何处理标点符号,例如句号和问号。
摘要由CSDN通过智能技术生成

我不确定你的属性可以采用什么值,但也许这个例子可以帮助你:

假设我们正在进行一次有监督的学习实验,试图确定一个句号是否标志着一个句子的结束,分别是EOS和NEOS.训练数据来自段落样式格式的普通句子,但转换为以下矢量模型:

>第1栏:课程:句末或非句末

>第2-8列:/ – 围绕有关时期的3个字

>第9,10列:分别在下一个可靠句子分隔符之前的句点的左/右数字(例如,?,!或段落标记).

>第11列:句点后的空格数.

当然,这不是一个非常复杂的问题需要解决,但它对Weka来说是一个不错的小介绍.我们不能只使用单词作为特征(真正的高维空间),但我们可以使用他们的POS(词性)标签.我们还可以提取单词的长度,无论单词是否大写等.

因此,您可以将任何内容作为测试数据提供,只要您能够将其转换为上面的矢量模型并提取.arff中使用的功能.

以下(非常小的部分).arff文件用于确定句子中的句点是否标记为结束:

@relation period

@attribute minus_three {'CC', 'CD', 'DT', 'FW', 'IN', 'JJ', 'JJR', 'JJS', 'LS', 'MD', 'NN', 'NNPS', 'NNS', 'NP', 'PDT', 'PRP', 'PRP$', 'RB', 'RBR', 'RBS', 'RP', 'UH', 'VB', 'VBD', 'VBG', 'VBN', 'VBP', 'VBZ', 'WDT', 'WP','WRB', 'NUM', 'PUNC', 'NEND', 'RAND'}

@attribute minus_three_length real

@attribute minus_three_case {'UC','LC','NA'}

@attribute minus_two {'CC', 'CD', 'DT', 'FW', 'IN', 'JJ', 'JJR', 'JJS', 'LS', 'MD', 'NN', 'NNPS', 'NNS', 'NP', 'PDT', 'PRP', 'PRP$', 'RB', 'RBR', 'RBS', 'RP', 'UH', 'VB', 'VBD', 'VBG', 'VBN', 'VBP', 'VBZ', 'WDT', 'WP','WRB', 'NUM', 'PUNC', 'NEND', 'RAND'}

@attribute minus_two_length real

@attribute minus_two_case {'UC','LC','NA'}

@attribute minus_one {'CC', 'CD', 'DT', 'FW', 'IN', 'JJ', 'JJR', 'JJS', 'LS', 'MD', 'NN', 'NNPS', 'NNS', 'NP', 'PDT', 'PRP', 'PRP$', 'RB', 'RBR', 'RBS', 'RP', 'UH', 'VB', 'VBD', 'VBG', 'VBN', 'VBP', 'VBZ', 'WDT', 'WP','WRB', 'NUM', 'PUNC', 'NEND', 'RAND'}

@attribute minus_one_length real

@attribute minus_one_case {'UC','LC','NA'}

@attribute plus_one {'CC', 'CD', 'DT', 'FW', 'IN', 'JJ', 'JJR', 'JJS', 'LS', 'MD', 'NN', 'NNPS', 'NNS', 'NP', 'PDT', 'PRP', 'PRP$', 'RB', 'RBR', 'RBS', 'RP', 'UH', 'VB', 'VBD', 'VBG', 'VBN', 'VBP', 'VBZ', 'WDT', 'WP','WRB', 'NUM', 'PUNC', 'NEND', 'RAND'}

@attribute plus_one_length real

@attribute plus_one_case {'UC','LC','NA'}

@attribute plus_two {'CC', 'CD', 'DT', 'FW', 'IN', 'JJ', 'JJR', 'JJS', 'LS', 'MD', 'NN', 'NNPS', 'NNS', 'NP', 'PDT', 'PRP', 'PRP$', 'RB', 'RBR', 'RBS', 'RP', 'UH', 'VB', 'VBD', 'VBG', 'VBN', 'VBP', 'VBZ', 'WDT', 'WP','WRB', 'NUM', 'PUNC', 'NEND', 'RAND'}

@attribute plus_two_length real

@attribute plus_two_case {'UC','LC','NA'}

@attribute plus_three {'CC', 'CD', 'DT', 'FW', 'IN', 'JJ', 'JJR', 'JJS', 'LS', 'MD', 'NN', 'NNPS', 'NNS', 'NP', 'PDT', 'PRP', 'PRP$', 'RB', 'RBR', 'RBS', 'RP', 'UH', 'VB', 'VBD', 'VBG', 'VBN', 'VBP', 'VBZ', 'WDT', 'WP','WRB', 'NUM', 'PUNC', 'NEND', 'RAND'}

@attribute plus_three_length real

@attribute plus_three_case {'UC','LC','NA'}

@attribute left_before_reliable real

@attribute right_before_reliable real

@attribute spaces_follow_period real

@attribute class {'EOS','NEOS'}

@data

VBP, 2, LC,NP, 4, UC,NN, 1, UC,NP, 6, UC,NEND, 1, NA,NN, 7, LC,31,47,1,NEOS

NNS, 10, LC,RBR, 4, LC,VBN, 5, LC,?, 3, NA,NP, 6, UC,NP, 6, UC,93,0,0,EOS

VBD, 4, LC,RB, 2, LC,RP, 4, LC,CC, 3, UC,UH, 5, LC,VBP, 2, LC,19,17,2,EOS

如您所见,每个属性都可以采用您想要的任何内容:

> real表示实数

>我用LC和UC分别表示大写和小写

>大多数其他值都是POS标签

您需要确切了解您的功能是什么,以及您将使用哪些值来表示/分类它们.然后,您需要将数据转换为.arff定义的格式.

要触及你的标点符号问题,我们假设我们的句子都以句号结尾.要么 ?.你可以有一个名为punc的属性,它有两个值:

@attribute punc {'p','q'}

我没用?因为这是在缺少数据点时(通常)分配的内容.我们你可以有布尔属性来指示一个角色或你有什么(0,1或false,为真).另一个例子,但质量:

@attribute quality {'great','good', 'poor'}

你如何确定所说的分类取决于你,但上面的内容应该让你开始.祝好运.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值