سؤال

لدي ملف نصي، وكل سطر من النموذج:

علامة التبويب كلمة تبويب علامة التبويب pos 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

هل سيساعدني أحد معالجات regex واحدة في عزل الكلمات من الملف؟ سأقوم بتجد واستبداله في نصوص الفصالة، ونأمل أن يكون ذلك. العثور على متعددة واستبداله على ما يرام. شيء واحد: لاحظ أن البحث عن "الفعل" سيحدد أيضا كلمة "الفعل"، وليس فقط جزء الكلام، لذلك كن حذرا. في النهاية أريد أن ينتهي بك الأمر مع كلمة واحدة لكل سطر.

شكرا جزيلا!

هل كانت مفيدة؟

المحلول

أعتقد أن Microsoft Excel يمكن أن تساعدك على أفضل ...

ما عليك سوى نسخ النص بأكمله على Excel وسيتم تنسيقه كجدول ثم انتقل إلى الأمام وحدد خلايا الأعمدة المناسبة للكلمة، وأخيرا انسخها على المفكرة.

أراهن أن هذا هو أسهل المسار.

إذا كنت في حالة تخزين Excel جميع القيم في عمود واحد، في عمود منفصل استخراج الكلمة حسب:

= تقليم (يسار (C1، MAXCHAR))

نصائح أخرى

يمكنك فقط استخدام awk لإزالة العمود الأول، كما هو الحال في

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

تخطي السطر الأول باستخدام

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

ليس هناك أي حاجة حقا لاستخدام تعبير منتظم لهذا. على سبيل المثال، يمكنك استخدام cut:

cut -f1 <inputfile

شيء مثل \s*([a-zA-z]+)\s*([a-zA-z]+) سوف يعيد الكلمة و نقاط البيع كجموعات. يمكنك بعد ذلك استخدامها في عبارة استبدال ك 1 دولار و 2 دولار للإخراج كما تريد.

إذا كنت تريد فقط جزء الكلمة، يمكنك فقط استخدام 1 دولار في الاستبدال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top