我想要制作一个从波斯文本文件中提取的独特词汇(带有它们的频率)的语料库。我将文本转换为一个列表,基于该列表我创建了一个唯一令牌列表。我想在将最终列表写入语料库之前排除任何数字标记,所以我写道:
FileObj = open ('TextOfTexts.txt', 'r', encoding = 'UTF8')
CorpObj = open ('MyCorpus.txt', 'w', encoding = 'UTF8')
FOList = FileObj.read().split (' ')
DigiList = re.findall (r'\b[+-]?\d+\b', FileObj.read()) #List of numeral tokens
UniTokens = list (set(FOList)) #List of unique tokens
for UniLex in UniTokens:
if UniLex not in DigiList: #This if-Block's supposed 2 exclude numbers
UniCount = FOList.count (UniLex) # Counts frequencies of tokens
CorpObj.write (UniLex + '\t' + UniCount + '\n')
FileObj.close()
CorpObj.close()
我已经测试了DigiList的内容。 RegEx正确列出了我的主文本文件中存在的所有整数。但是我的文本语料库仍然在其中包含其频率的整数。我究竟做错了什么?如何在进入我的语料库之前删除整数?
P.S .: 我也写了这样的if-Block,但它也没有做我想要的工作:
if UniLex in DigiList:
continue
else:
...