وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

NLP ساده در پایتون با برچسب‌گذاری TextBlob: بخش‌های گفتار (PoS)

0 8
زمان لازم برای مطالعه: 4 دقیقه


معرفی

در زمینه پردازش زبان طبیعی (NLP)، یکی از وظایف اساسی، برچسب گذاری قسمت های گفتار (PoS) است. برچسب گذاری PoS شامل تخصیص دسته های دستوری مانند اسم، افعال، صفت و غیره به کلمات در یک جمله است. این process نقش مهمی در بسیاری از برنامه های NLP از جمله تجزیه و تحلیل متن، بازیابی اطلاعات و ترجمه ماشینی ایفا می کند.

در این مقاله، روش انجام برچسب گذاری PoS با استفاده از کتابخانه TextBlob در پایتون را بررسی خواهیم کرد.

برچسب گذاری بخشی از گفتار (PoS) چیست؟

بخشی از برچسب زدن گفتار است process برچسب زدن کلمات در یک جمله با دسته های دستوری مربوطه. به هر کلمه یک تگ اختصاص داده می شود روی نقش نحوی و عملکرد آن در جمله. این تگ های PoS اطلاعات ارزشمندی در مورد رفتار کلمه و ارتباط آن با سایر کلمات در جمله ارائه می دهند.

به عنوان مثال جمله: “گربه خواب است” را در نظر بگیرید. در اینجا «گربه» یک اسم، «است» یک فعل و «خواب» یک فعل است.

TextBlob را نصب کنید

قبل از اینکه با TextBlob به برچسب‌گذاری PoS بپردازیم، مطمئن شویم که کتابخانه‌های لازم را نصب کرده‌ایم. برای نصب TextBlob می توانید از دستور زیر استفاده کنید:

$ pip install textblob

علاوه بر این، باید منابع زبان مورد نیاز را با اجرای دستور زیر نصب کنیم:

$ python -m textblob.download_corpora

مراحل پیش پردازش

قبل از انجام برچسب‌گذاری PoS، باید متن را با حذف هر عنصر غیر ضروری و عادی سازی کلمات، پیش پردازش کنیم. مراحل پیش پردازش معمولی شامل حذف علائم نگارشی، تبدیل متن به حروف کوچک و مدیریت انقباضات است. انقباض نوعی عادی سازی است، مانند تبدیل “نمی توان” به “نمی توان”.

بیایید برای درک بهتر این مراحل به یک مثال نگاه کنیم:

from textblob import TextBlob
import re

def preprocess_text(text):
    
    text = re.sub(r'(^\w\s)', '', text)
    
    
    text = text.lower()
    
    
    text = TextBlob(text).correct()
    
    return text


sentence = "I can't wait to see the movie!"
preprocessed_sentence = preprocess_text(sentence)
print(preprocessed_sentence)

در کد بالا a را تعریف می کنیم preprocess_text تابعی که یک جمله را به عنوان ورودی می گیرد و مراحل پیش پردازش را انجام می دهد. این تابع با استفاده از عبارات منظم علائم نگارشی را حذف می کند، متن را به حروف کوچک تبدیل می کند و هر گونه انقباض را با استفاده از TextBlob تصحیح می کند. correct روش. این پیش پردازش منجر به خروجی زیر می شود:

i can wait to see the movie

جدول نگاشت معنی برچسب های PoS

برای درک تگ های PoS اختصاص داده شده توسط TextBlob، داشتن یک جدول “معنی نگاشت” که شرحی از هر تگ را همراه با مثال ها ارائه می دهد مفید است. در اینجا یک نسخه توصیفی از جدول آمده است:

برچسب بزنید شرح مثال ها
CC پیوند هماهنگی و، یا، اما
سی دی عدد اصلی 1، 2، 3
DT تعیین کننده a، a
سابق وجودی وجود دارد آنجا
FW کلمه خارجی بنجور، هولا
که در حرف حرف اضافه/فرع ربط که در، روی، بعد از
جی جی صفت زیبا، شاد
JJR صفت، مقایسه ای بزرگتر، قوی تر
JJS صفت، فوق العاده بزرگترین، قوی ترین
LS نشانگر مورد فهرست 1، 2، 3
MD مدال می تواند، می تواند، ممکن است
NN اسم، مفرد یا جرم گربه، سگ، شادی
NNS اسم، جمع گربه، سگ، کتاب
NNP اسم خاص، مفرد جان، لندن، گوگل
NNPS اسم خاص، جمع اسمیتز، اپل، مایکروسافت
PDT پیش تعیین کننده همه، هر دو، نیمی
POS پایان مالکیتی ‘s,’
پی آر پی ضمیر شخصی من، تو، او
PRP$ ضمیر ملکی من، تو، او
RB قید سریع، خیلی
RBR قید، مقایسه ای سریع تر، قوی تر
RBS قید، فوق العاده سریع ترین، قوی ترین
RP ذره بالا، خاموش، پایین
SYM سمبل $، ٪ +
به به به
اوه حرف ندا اوه، وای، هی
VB فعل، شکل پایه بخور، بدو، بازی کن
VBD فعل، زمان گذشته خورد، دوید، بازی کرد
VBG فعل، جنوند یا فعل فعلی خوردن، دویدن، بازی کردن
VBN فعل، فعل ماضی خورد، دوید، بازی کرد
VBP فعل، غیر سوم شخص مفرد حال بخور، بدو، بازی کن
VBZ فعل سوم شخص مفرد حال می خورد، می دود، بازی می کند
WDT تعیین کننده ساعت کدام، چه
WP Wh-ضمیر چه کسی، چه کسی، چه کسی
WP$ ضمیر ملکی wh که
WRB قید Wh کجا، کی، چگونه

اکنون، بیایید پیاده سازی اساسی تگ گذاری PoS را با استفاده از TextBlob بررسی کنیم. قطعه کد زیر روش استخراج و را نشان می دهد print تمام تگ های PoS از یک جمله داده شده:

from textblob import TextBlob

sentence = "The cat is sleeping."
blob = TextBlob(sentence)

for word, tag in blob.tags:
    print(word, "-", tag)

در کد بالا، a را ایجاد می کنیم TextBlob با انتقال جمله به آن مخالفت کنید. سپس، روی هر کلمه و تگ PoS مربوط به آن با استفاده از عبارت تکرار می‌کنیم tags دارایی از TextBlob هدف – شی. ما print کلمه و برچسب آن روی خطوط جداگانه خروجی به صورت زیر خواهد بود:

The - DT
cat - NN
is - VBZ
sleeping - VBG

در برخی موارد، ممکن است فقط به استخراج تگ های PoS خاص علاقه مند باشیم. با استفاده از داده های برگردانده شده توسط TextBlob، می توانیم با تعیین تگ های مورد نظر و فیلتر کردن، استخراج انتخابی انجام دهیم. روی آن ها

در اینجا یک مثال است:

from textblob import TextBlob

sentence = "The cat is sleeping."
blob = TextBlob(sentence)

desired_tags = ("NN", "VB")
selected_words = (word for word, tag in blob.tags if tag in desired_tags)

print(selected_words)

در کد بالا لیستی از تگ های PoS مورد نظر را تعریف می کنیم (desired_tags). سپس یک لیست جدید ایجاد می کنیم (selected_words) با استفاده از درک لیست که کلمات را بر اساس فیلتر می کند روی برچسب های آنها بالاخره ما print کلمات انتخاب شده:

('cat')

معایب و پیشرفت ها

در حالی که TextBlob یک راه راحت برای انجام برچسب گذاری PoS ارائه می دهد، مهم است که توجه داشته باشید که ممکن است همیشه نتایج عالی ایجاد نکند. دقت برچسب گذاری PoS به شدت متکی است روی کیفیت مدل اساسی و زمینه متن مورد تجزیه و تحلیل. در مواردی که دقت بالایی لازم است، تکنیک ها و مدل های پیشرفته تری ممکن است لازم باشد.

برای بهبود دقت برچسب‌گذاری PoS، می‌توانید از کتابخانه‌های دیگری مانند spaCy یا NLTK استفاده کنید که مدل‌های پیچیده‌تری برای برچسب‌گذاری PoS ارائه می‌دهند. علاوه بر این، تنظیم دقیق یا آموزش مدل های سفارشی روی داده های خاص دامنه می تواند به بهبود نتایج برای کارهای خاص کمک کند.

نتیجه

تگ گذاری PoS یک کار اساسی در پردازش زبان طبیعی است و TextBlob یک راه ساده و در دسترس برای انجام تگ گذاری PoS در پایتون ارائه می دهد. در این مقاله، مفهوم تگ گذاری PoS را بررسی کردیم، روش نصب کتابخانه های لازم، پیش پردازش متن و پیاده سازی تگ های اولیه و پیشرفته PoS را با استفاده از TextBlob آموختیم.

ما همچنین جدول نگاشت معنی برچسب‌های PoS را مورد بحث قرار دادیم، ایرادات و پیشرفت‌های بالقوه را برجسته کردیم و مثال‌هایی از زندگی واقعی ارائه کردیم. با داشتن این دانش، اکنون می توانید از برچسب گذاری PoS در پروژه های NLP خود برای به دست آوردن بینش ارزشمند از داده های متنی استفاده کنید.

(برچسب‌ها به ترجمه)# python



منتشر شده در 1402-12-31 02:11:04

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید