我有一个连接由星号分隔的单词的程序。该程序删除星号并将单词的第一部分(星号之前的部分)与其第二部分(星号之后的部分)连接起来。除了一个主要问题外,它运行良好:第二部分(星号之后)仍在输出中。例如,程序连接了 ['presi', '*', 'dent'],但 'dent' 仍在输出中。我没有弄清楚我的代码哪里有问题。代码如下:
from collections import defaultdict
import nltk
from nltk.tokenize import word_tokenize
import re
import os
import sys
from pathlib import Path
def main():
while True:
try:
file_to_open =Path(input("\nPlease, insert your file path: "))
with open(file_to_open) as f:
words = word_tokenize(f.read().lower())
break
except FileNotFoundError:
print("\nFile not found. Better try again")
except IsADirectoryError:
print("\nIncorrect Directory path.Try again")
word_separator = '*'
with open ('Fr-dictionary2.txt') as fr:
dic = word_tokenize(fr.read().lower())
def join_asterisk(ary):
for w1, w2, w3 in zip(words, words[1:], words[2:]):
if w2 == word_separator:
word = w1 + w3
yield (word, word in dic)
elif w1 != word_separator and w1 in dic:
yield (w1, True)
correct_words = []
incorrect_words = []
correct_words = [w for w, correct in join_asterisk(words) if correct]
incorrect_words = [w for w, correct in join_asterisk(words) if not correct]
text=' '.join(correct_words)
我想知道是否有人可以帮我检测这里的错误?
输入示例:
共和国总统*的承诺也是铁路公司领导人的承诺,他争论Elysee Palace的Grand-Est会议上的各种官员。
2017 年 7 月 1 日,共和国总统埃马纽埃尔·马克龙(右)与法国国营铁路公司的老板纪尧姆·佩皮在巴黎蒙帕纳斯车站。GEOFFROY VAN DER HASSELT / 法新社
SNCF 的用户有时会因火车取消或服务中断而感到恼火,这似乎也影响了共和国总统。作为大辩论的一部分,埃马纽埃尔·马克龙 (Emmanuel Macron) 于 2 月 26 日星期二在爱丽舍宫 (Elysee Palace) 的民选官员面前,在 12 月 23 日关闭了 Saint-Dié - Epinal 线路的 SNCF 发表了非常严厉的言论, 2018 年,而国家元首在 2018 年 4 月在孚日进行的迁移期间承诺,它将继续运营。
慕的地8271018
撒科打诨
相关分类