از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
NLP ساده در پایتون با برچسبگذاری TextBlob: بخشهای گفتار (PoS)
سرفصلهای مطلب
معرفی
در زمینه پردازش زبان طبیعی (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