Question

J'ai un fichier texte, et chaque ligne est de la forme:

TAB WORD TAB PoS TAB FREQ #

Word    PoS Freq
the Det 61847
of  Prep    29391
and Conj    26817
a   Det 21626
in  Prep    18214
to  Inf 16284
it  Pron    10875
is  Verb    9982
to  Prep    9343
was Verb    9236
I   Pron    8875
for Prep    8412
that    Conj    7308
you Pron    6954

L'un de vous me aider les sorciers regex gentiment à isoler les mots du fichier? Je vais faire une recherche et de remplacement dans TextPad, espérons-le, et ce sera cela. Multiple trouver et remplace est très bien. Une chose: avis que la recherche de « verbe » tournerait aussi le mot de « verbe », non seulement la partie de la parole, alors soyez très vigilant. En fin de compte, je veux finir avec 1 mot par ligne.

Merci beaucoup!

Était-ce utile?

La solution

Je pense que Microsoft Excel peut vous aider à mieux que ...

Il suffit de copier le texte intégral sur Excel et il sera formaté comme table, alors allez-y et sélectionnez les cellules de la colonne appropriées pour le mot, enfin les copier sur le bloc-notes.

Je parie que c'est le chemin le plus facile.

Si dans le cas Excel stocke toutes les valeurs dans une seule colonne, dans une colonne séparée extraire le mot par:

= garniture (LEFT (C1, maxchar))

Autres conseils

Vous pouvez simplement utiliser awk pour enlever la première colonne, comme dans

awk '{print $1}' /path/to/filename

Passer la première ligne en utilisant

awk 'NR!=1 {print $1}' /path/to/filename

Il n'y a pas vraiment besoin d'utiliser une expression régulière pour cela. Par exemple, vous pouvez utiliser cut:

cut -f1 <inputfile

Quelque chose comme \s*([a-zA-z]+)\s*([a-zA-z]+) retournerait le mot et PoS en tant que groupes. Vous pouvez ensuite les utiliser dans la déclaration de remplacer 1 $ et 2 $ à la sortie que vous voulez.

Si vous voulez que la partie Word, vous pouvez simplement utiliser 1 $ dans le remplacer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top