【发布时间】:2016-03-26 11:25:56
【问题描述】:
我是 Python 新手,我有一个标记化作业 输入是一个带有句子的 .txt 文件 并且输出是带有令牌的 .txt 文件,当我说令牌时,我的意思是:简单的单词,',','!' ,“?” , '.' '"'
我有这个功能: 输入: Elemnt 是一个带或不带标点符号的词,可以是这样的词:Hi or said: or said" StrForCheck :是我想从单词中分离出来的标点数组 TokenFile:是我的输出文件
def CheckIfSEmanExist(Elemnt,StrForCheck, TokenFile):
FirstOrLastIsSeman = 0
for seman in StrForCheck:
WordSplitOnSeman = Elemnt.split(seman)
if len(WordSplitOnSeman) > 1:
if Elemnt[len(Elemnt)-1] == seman:
FirstOrLastIsSeman = len(Elemnt)-1
elif Elemnt[0] == seman:
FirstOrLastIsSeman = 1
if FirstOrLastIsSeman == 1:
TokenFile.write(Elemnt[0])
TokenFile.write('\n')
TokenFile.write(Elemnt[1:-1])
TokenFile.write('\n')
elif FirstOrLastIsSeman == len(Elemnt)-1:
TokenFile.write(Elemnt[0:-1])
TokenFile.write('\n')
TokenFile.write(Elemnt[len(Elemnt)-1])
TokenFile.write('\n')
elif FirstOrLastIsSeman == 0:
TokenFile.write(Elemnt)
TokenFile.write('\n')
代码在标点数组上循环,如果他找到一个,我检查标点是单词中的第一个字母还是最后一个字母,然后在我的输出文件中将单词和标点分别写在不同的行中
但我的问题是,除了这些词之外,它对整个文本都非常有效: 工作“、创建”、公共“、警察”
【问题讨论】: