Je voudrais me débarrasser de non trait d'un trait d'union, mais je tire des phrases en phrases pour le prétraitement du PNL. P>
Entrée forte> p> samples = [
'A former employee of the accused company, â â â, offered a statement off the record.', #dash
'He is afraid of two thingsâspiders and senior prom.' #dash
'Fifty-six bottles of pop on the wall, fifty-six bottles of pop.' #hyphen
]
ignore_symbol = ['-']
for i in range(len(samples)):
text = samples[i]
ret = []
for word in text.split(' '):
ignore = len(word) <= 0
for iw in ignore_symbol:
if word == iw:
ignore = True
break
if not ignore:
ret.append(word)
text = ' '.join(ret)
samples[i] = text
print(samples)
#output
['A former employee of the accused company, â â â, offered a statement off the record.',
'He is afraid of two thingsâspiders and senior prom.
Fifty-six bottles of pop on the wall, fifty-six bottles of pop.']
for i in range (len(samples)):
list_temp = []
text = samples[i]
list_temp.extend([x.strip() for x in text.split(',') if not x.strip() == ''])
samples[i] = list_temp
print(samples)
#output
[['A former employee of the accused company',
'â â â',
'offered a statement off the record.'],
['He is afraid of two thingsâspiders and senior prom.Fifty-six bottles of pop on the wall',
'fifty-six bottles of pop.']]
3 Réponses :
Essayer d'utiliser une fente de regex (expression régulière) avec Quelque chose comme: p> re.split code>. String.Split de Python () est trop limité dans la fonctionnalité pour cela. Vous aurez ensuite besoin de passer la version Unicode d'un personnage "d'un trait d'union".
Si vous recherchez une solution non-regex, Unicode Point pour Dash est 8212 code>
, vous pouvez donc remplacer ceux avec ',' code>, puis divisé par
',' code> puis ajoutez des phrases non-espaces: < Pré> xxx pré> p>
Tout d'abord, les 2e et 3ème phrase ont été combinées car il n'y a pas de virgule séparant les deux cordes. En Python, écrire sur votre question:
Fonction tmp = 'A''B' code> est équivalent à
TMP = 'AB' code>, c'est pourquoi il n'y a que 2 chaînes dans les échantillons
(2e et 3ème et 3ème ont été fusionnés).
supprimer_dash_preserve_hypshen code> ci-dessous supprime tous les tirets dans le paramètre
str_sentence code> et renvoie un
Str_Sentence CODE>.
La fonction est ensuite appliquée à tous les éléments de chaîne dans la liste code> code>, générant ainsi le
samples_without_dash code>. P>
samples = [
'A former employee of the accused company, âââ, offered a statement off the record.', #three dashes
'He is afraid of two things â spiders and senior prom.',#**(COMMA HERE)** #dash
'Fifty-six bottles of pop on the wall, fifty-six bottles of pop.' #hyphen
]
def remove_dash_preserve_hyphen(str_sentence, dash_signatures=['â']):
for dash_sig in dash_signatures:
str_sentence = str_sentence.replace(dash_sig, '')
return str_sentence
samples_without_dash = [remove_dash_preserve_hyphen(sentence) for sentence in samples]
Distinguer un trait d'union et Dash Code> - Pouvez-vous décrire en mots la différence entre un trait d'union et un tiret? Connaissez-vous des expressions régulières?
Dans votre exemple de texte, les HYHENS I> sont le point de code Unicode
45 code> et les tirets sont un point de code unicode
8212 code> - est votre exemple une copie et coller de votre texte réel? ..
pour C en s: impression (c, ord (c)) code>.