Coder Social home page Coder Social logo

roshan-research / hazm Goto Github PK

View Code? Open in Web Editor NEW
1.2K 1.2K 183.0 26.11 MB

Persian NLP Toolkit

Home Page: https://www.roshan-ai.ir/hazm/

License: MIT License

Python 100.00%
dependency-parser embeddings farsi lemmatization natural-language-processing nlp normalization persian persian-nlp pos-tagging python text-processing tokenizer

hazm's People

Contributors

ahangarha avatar aliqb avatar asdoost avatar azdy-dev avatar bhnum avatar e-ghafour avatar edalatfard avatar imani avatar kharazi avatar khosrotabar avatar maanijou avatar mahdizade avatar mavahedinia avatar mebrahimi avatar mghmgh1281375 avatar mhbashari avatar mohsenfallah2 avatar mojtaba-khallash avatar mortezamahdavimortazavi avatar nournia avatar phsfr avatar pks avatar pre-commit-ci[bot] avatar riasati avatar ruhollahh avatar sfrph avatar sinras avatar sir-kokabi avatar yassersouri avatar youngmind1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hazm's Issues

مشکل کاراکتر نیم فاصله

با عرض سلام
روی اوبونتو ۱۴.۰۴ و پایتون۳، هضم ۵ رو نصب کردم
هنگام اجرای این دستور در کنسول:

normalizer.normalize('اصلاح نويسه ها و استفاده از نیم فاصله پردازش را آسان مي كند')

خروجی به صورت زیر چاپ می شود:

'اصلاح نویسه\u200cها و استفاده از نیم\u200cفاصله پردازش را آسان می\u200cکند'

مشکل اینه که کاراکتر نیم فاصله رو به صورت
\u200c
چاپ می کنه.
ممنون میشم کمک کنین و بفرمایین این مشکلو چطور رفع کنم؟

کوتیشن به جای گیومه

      به گزارش عصر ایران روسای 5 حزب " جمهوریخواه خلق" (CHP) ، "حرکت ملی" (MHP) ، " دموکراتیک چپ" (DSP) ، " حزب دموکرات " (DP) و "حزب ترکیه مستقل" (BTP) روز گذشته در مراسمی در "سوییس هتل" آنکارا از نامزدی "اکمل الدین احسان اوغلو" دبیر کل سابق سازمان همکاری های اسلامی برای رقابت با اردوغان در انتخابات آتی ریاست جمهوری ترکیه حمایت کردند.

خیلی از سایت های فارسی به جای استفاده از گیومه از " استفاده می کنند.
« »
این باید در نرمالایزر بیاید یا نه؟

Parser Problem

ببخشید من کد را پارس میکنم ولی در حلقه بینهایت می افتد ، به نظر شما مشکل خاصی داره. ممنون میشم راهنماییم کنید چون انواع روش ها را تست کردم
fileOpinionStem="StemPos"
filewStemPars="StemPars"
with open(filewStemPars,"w+") as fwStemPars:
with open(fileOpinionStem,"r") as fr:
for line in fr:
try:
line = unicode(line.strip(),encoding='utf-8')
sentences = sent_tokenize(normalizer.normalize(line))

            treeSen=parser.parse_sents([word_tokenize(sentence) for sentence in sentences])
                    fwStemPars.write(treeSen.to_conll(10).encode("utf-8"))
            fwStemPars.write("\n")

        except Exception as e:
                            fwStemPars.write( "???????????????????????\n")

استخراج اخبار همشهری

با سلام
چطور می توان خبرهای یک روز خاص همشهری را استخراج کنیم؟
( مثلا" متن اخبار روز1997/05/25 )
String year="1997";
String month="05";
String day="25";
String news="all texts in that day using hamshahriReader.cs..."

نحوه کارکرد برچسب زن نقش کلمات

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

فهرست واژگان فارسی

سلام امروز با کتابخانه‌شما آشنا شدم کار بزرگ و خوبی است دستتان درد نکند.چند پیشنهاد برای بهبود کتابخانه داشتم. پیشنهاد۱: چند مدت پیش مجموعه فهرست‌هایی از واژگان فارسی بر پایه استفاده از وب‌سایت‌های معتبر ، مقالات برگزیدهٔ ویکی‌پدیا، فرهنگ معین تهیه کردم که در پیوند زیر قابل دسترس است که به نظرم شما می‌توانید از آنها در کارتان استفاده کنید. [Persian-Spell-checker](https://github.com/reza1615/Persian-Spell-checker)

پیشنهاد۲:
همچینین با کمک چند نفر از دوستان بر روی ابزار زبان کار کردیم که نهایتا توانستیم نسخهٔ فارسی‌اش را راه‌اندازی کنیم
این ابزار قابلیت‌های زیادی دارد مثلا برای ویکی‌پدیا، اپن‌آفیس و افزونهٔ فایرفاکس قابل استفاده است و غلط‌های املائی، گرامری را به کاربر گوشزد می کند.
الان به ۳۰ زبان هست که فارسی‌اش را بر پایه کدهای جاوا اسکریپتی که در ویکی‌پدیای فارسی نوشته بودیم راه انداختیم و الان ۸ عدد کد جاوا از زبان انگلیسی بومی کردیم که تا حدودی ابزار قابل استفاده باشد. از نظر فاصلهٔ مجازی به نسبت ابزار خوبی شده‌‌است
اگر برای شما امکان دارد در توسعهٔ آن ابزار هم کمک کنید
پیشنهاد۳:
اگر دیتابیس خاصی هم مدنظرتان بود بگوئید شاید بتوانم تهیه کنم.
پیشنهاد۴:
همچنین کدها و ریجکس‌های زیادی به زبان پایتون برای تمیزکاری ویکی‌پدیا داریم که ممکن است به درد کار شما بخورد

ربات زیباسازی ویکی‌پدیای فارسی
پیشنهاد۵:
این موارد به علاوهٔ موارد بیشتر در ابزار زبان‌ها تعبیه کرده ایم
ریجکس‌های ویراستیار از اینجا
بن افعال ویراستیار از اینجا
توابع تمیزکاری ابزار ویکی‌پدیای فارسی اینجا
ابزار تمیزکاری ویکی‌پدیای فارسی کتابخانهٔ مواردی که فاصلهٔ مجازی نیاز دارند اینجا
خود ابزار اینجا

درخواست:
اگر ممکن است لطفا مجوز دیتابیس‌ها و کتابخانه‌‌ها و ابزار آموزش موجود در دراپ‌باکس را هم مشخص کنید تا بتوان با استناد به آن در پروژه‌ها استفاده کرد

پردازش متون عامیانه و غیر رسمی

با سلام،
یکی از چالشهایی که امروزه در پردازش زبان طبیعی وجود داره طبیعتا کار با متون نوشتاری عامیانه و غیر رسمی هست.
در نسخه حاضر هضم تا اونجا که میدونم اینکار انجام نمیشه؟ به طور مشخص در مورد ریشه یابی کلمات غیر رسمی (نظیر آنچه به وفور در کامنتهای کاربران و یا پیامهای کوتاه مشاهده میشه)
خواستم ببینم آیا برنامه ای در این رابطه دارید؟

گرفتن خروجی خاص از چانکر

با سلام
من میخوام خروجی چانکر خصوصی سازی بشه
یعنی مثلا در خروجی تنها عبارات فعلی وجود داشته باشه و سایر موارد نباشه
آیا این امکان داره؟
در صورت امکان ممنون میشم اگر لطف کنید و نحوه گرفتن خروجی در این حالت را با کد نمونه بیان کنید

با تشکر فراوان از زحمات شما

NLTK was unable to find the java file!

با اجرای این کد به مشکل زیر برخوردم
اینترنت را زیر و رو کردم به جایی نرسیدم
از ویندوز 8 64 بیتی و پایتون 3.4 64 بیتی استفاده میکنم
لطفا یکی راهنمایی بفرماید

Traceback (most recent call last):
File "<pyshell#17>", line 1, in
tagger.tag(word_tokenize('ما بسیار کتاب می‌خوانیم'))
File "C:\Python34\lib\site-packages\nltk\tag\stanford.py", line 59, in tag
return self.tag_sents([tokens])[0]
File "C:\Python34\lib\site-packages\hazm\POSTagger.py", line 25, in tag_sents
return super(stanford.POSTagger, self).tag_sents(refined)
File "C:\Python34\lib\site-packages\nltk\tag\stanford.py", line 64, in tag_sents
config_java(options=self.java_options, verbose=False)
File "C:\Python34\lib\site-packages\nltk\internals.py", line 82, in config_java
_java_bin = find_binary('java', bin, env_vars=['JAVAHOME', 'JAVA_HOME'], verbose=verbose, binary_names=['java.exe'])
File "C:\Python34\lib\site-packages\nltk\internals.py", line 544, in find_binary
binary_names, url, verbose))
File "C:\Python34\lib\site-packages\nltk\internals.py", line 538, in find_binary_iter
url, verbose):
File "C:\Python34\lib\site-packages\nltk\internals.py", line 517, in find_file_iter
raise LookupError('\n\n%s\n%s\n%s' % (div, msg, div))
LookupError:

NLTK was unable to find the java file!

Use software specific configuration paramaters or set the JAVAHOME environment variable.

Type Persian in Python

Thank you for your great work
I read your examples in the ReadMe
you have used Persian sentences in Persian alphabets,
but I couldn't type persian in python console
which software, shell or settings you used to type in Persian?

درخواست توضیح در مورد برخی برچسب های اجزای کلام

با سلام و عرض خسته نباشید

در برچسب زنی اجزای کلام در مورد دو نشانه ی زیر که مشخص کردم اگر ممکن است توضیح دهید
چون در تگ های پیکره ی بیجن خان که در یکی از تاپیک های این بخش آمده این برچسب ها نبودند
RES
RESe

با تشکر

مشکل در نمایش نتیجه پارسر

هنگام اجرای کد زیر خطای بعدی نمایش داده می شود
def api_article(Matn): a= Matn.replace('_',' ') return jsonify({'devices': parser.parse(word_tokenize(a)).tree().pprint()})

UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-2: ordinal not in range(128)

debug
File "/usr/local/lib/python2.7/dist-packages/hazm_test.py", line 55, in api_article
return jsonify({'devices': parser.parse(word_tokenize(ss)).tree().pprint()})
File "/usr/local/lib/python2.7/dist-packages/nltk/tree.py", line 748, in pprint
print(self.pformat(**kwargs), file=stream)

dependency parser

با عرض سلاو و خسته نباشید.
یک سوال داشتم ممنون میشم راهنماییم کنید، من می خواهم هر رشته ای را به صورت خط به خط اط فایل می خوانم و با
posttagger
برچسب گداری میکنم و بعد با درخت پارس رابطه ی آن را بدست می آورم،حال چطور می توانم خروجی حاصل از درخت پارس را بگیرم تا در یک رشته بریزم تا بتوانم در فایل دخیره کنم؟

خواندن از فایل

سلام خسته نباشید
ببخشید من یک سوال داشتم ممنون میشم که کمکم کنید
من پایتون3 ا روی اوبونتو نصب کردم
import os.path
scriptpath=os.path.dirname("/home/atefeh/Documents/")
filename=os.path.join(scriptpath,"testfile.txt")
fileres=open(filename)
ولی موقع خواندن از فایل خطای زیر را می دهد
و بعد خطای زیر را می دهد:
filenotfounder: no such file or directory: /home/atefeh/documents
ولی وقتی پوشه را باز میکنم دقیقا این فایل وجود دارد
و با دستور sudo allocate testfile.txt
هم همان مسیر بالا را می دهد
ممنون میشم راهنماییم کنید

persian.tagger فایل

سلام، خسته نباشی بابت کاری که کردین. من برنامه هضم را برای زبان سی شارپ که میخواستم استفاده کنم، برنامه گفت فایل "پرشیین تگر" را نداره. بررسی که کردم فایل بود ولی خالی. پیام اکسپشن کی داد به شرح زیر بود
Unrecoverable error while loading a tagger model

سوال بعدی اینکه در سی شارپ چطور عبارات اسمی و فعلی را میشه تشخیص داد ؟

تشکر

اصلاح کاراکتر اشتباه نیم‌فاصلهٔ

اوّلین باری که می‌خواستم از نیم‌فاصله استفاده کنم توی مایکروسافت ورد بود و دکمه‌های ترکیبی که استفاده می‌کردم کاراکتر ¬ رو توی متن می‌گذاشت و توی ورد مثل نیم‌فاصله بود. اگر این کاراکتر رو هم تصحیح کنید خوب می‌شه.

اصلاح برچسب‌های اجزای سخن

برچسب‌های پیکره بیجن‌خان متفاوت هست با برچسب‌های دادگان و ما می‌خوایم یک سری برچسب داشته باشیم. من فکر می‌کنم این مجموعه برچسب عمومی که در زبان‌های مختلف تست شده، گزینه مناسبی هست:

NOUN
VERB
ADJ
ADV
PRON
DET
ADP
NUM
CONJ
PRT
.
X

همه برچسب‌های پیکره بیجن‌خان:

ADJ
ADJ_CMPR
ADJ_INO
ADJ_ORD
ADJ_SIM
ADJ_SUP
ADV
ADV_EXM
ADV_I
ADV_NEGG
ADV_NI
ADV_TIME
AR
CON
DEFAULT
DELM
DET
IF
INT
MORP
MQUA
MS
N_PL
N_SING
NN
NP
OH
OHH
P
PP
PRO
PS
QUA
SPEC
V_AUX
V_IMP
V_PA
V_PRE
V_PRS
V_SUB

برچسب‌های درشت پیکره دادگان:

ADJ
ADR
ADV
CONJ
IDEN
N
PART
POSNUM
POSTP
PR
PREM
PRENUM
PREP
PSUS
PUNC
V
SUBR

ریشه کلمات در خروجی کو.ان.ال.ال

سلام مهندس.
من اگر بخواهم توی خروجی کو.ان.ال.ال «هضم» به جای خط تیره، ریشه کلمه رو داشته باشم باید چه کار کنم؟
تنظیمات خاصی داره یا باید خودم ریشه‌یاب رو روی خروجی پارسر اعمال کنم؟ مثلاً اینجوری

PInp=(parser.parse(word_tokenize(Inp)).to_conll(10))
SInp=PInp.split('\n')
SInp.pop()
InpO=[]
for i in SInp:
    I=i.split('\t')
    I.pop(2)
    if I[2]=='V':
        I.insert(2,lemmatizer.lemmatize(I[1]))
    else:
        I.insert(2,stemmer.stem(I[1]))
    InpO.append(I)
for i in InpO:
    print(i)

اگه اینجوریه، یعنی پارسر اصلاً از ریشه کلمات استفاده نمی‌کنه؟

یک مشکل کوچک در تشخیص جمله ها

سلام
Sentence_tokenizer
چیزهایی شبیه این را از نقطه جمله تشخیص می دهد. نمی دانم چطوری باید تشخیص داد که این ها جمله نیستند.

     آقای نامردی به نام "میم.الف" که عضو کا.گ.ب است به شرکت ج.ا حمله کرد و دی.ان.ای وحید را دزدید و آن را روی سایت
googol.com قرار داد. 

مشکل در ابزار برچسب زن با وجود قرار دادن مدل ها

با سلام
ضمن تشکر از سازندگان مجموعه ی هضم بنده مشکلی که دارم مربوط به برچسب زن اجزای کلام یا POS Tager هست.
من این ابزار را دانلود و درمحیط اکلیپس وارد کردم. بیشتر بخش های ابزار کار می کنند. اما هر کاری کردم، بخش برچسب زن جزء کلام و پارسر نحوی کار نکردند.
بنده مدل ها را نیز دانلود و در پوشه resources قرار دادم. برای برچسب زنی، اجرای دستور زیر خطا می دهد.

دستور:

tagger = POSTagger(model='resources/postagger.model')
tagger.tag(word_tokenize('ما بسیار کتاب می‌خوانیم'))

خطا:

tagger = POSTagger(model='resources/postagger.model')

File "C:\Users\Ali\workspace\testhazm2\hazm\POSTagger.py", line 13, in init_
_
super(stanford.POSTagger, self).__init
(_args, *_kwargs)
TypeError: init() got an unexpected keyword argument 'model

با تشکر

چگونگی رفرنس دهی + پیشنهاد

سلام وقتتون بخیر

سوالم اینه که چطور باید به هضم رفرنس بدم؟
کاش در همون سایت سبحه نمونه هایی مثل بیب-تکس رو هم اضافه کنید.

پیشنهاد:
(stopword removal) .چیزی که میتونید اضافه کنید، حذف کلمات اضافی است
همین طور حذف علائم نگارشی متن.

و کاش تبلیغات بیشتری در معرفی این پروژه انجام میگرفت
چون من خیلی شانسی سایت هضم رو پیدا کردم، متاسفانه خیلی سخت می شه با گوگل این سایت رو پیداش کرد

با تشکر فراوان از زحمتی که کشدید..

ریشه یابی افعال واسامی بی قاعده (لاتین)

با سلام و احترام .من قصد دارم روی دیتا ست رویترز کار کنم .در فاز اول باید دیتا ست را نرمال سازی کنم و عملیات ریشه یابی را انجام دهم . . با توجه به این که دیتا ست من لاتین است .من چگونه می توانم افعاد و اسامی بی قاعده را ریشه یابی کنم . ؟

گروه ها

سلام
برای جمله ی زیر
کارگردان رومی فیلم مونیخ کیست؟
کد هضم در لینوکس، به صورت زیر گروه بندی می کند
کارگردان رومی فیلم NP
مونیخ کیست؟VP
در حالی که فکر کنم درستش اینه:
کارگردان رومی فیلم مونیخ NP
کیست VP

درسته؟

parser error

سلام روزتون به خیر
یه سوال داشتم من وقتی با پارسر هضم یه فایل را پارس میکنم اکثر جملات را اشتباه پارس میکنه؟؟ در صورتیکه اگه همون جمله را به صورت تکی بش بدم درست پارس میکنه. به نظرتون چه کار کنم؟

POStagger

سلام
هضم شما نیاز دارم.من در محیط پایتون 3.4 و 3.3.5 در ویندوز 7 کار میکنم.هر چه تو سایت گشتم POStaggerمن برای پایان نامه ام به
دانلود و نصب کنم.خواهش می کنم منو راهنمایی بفرمایید.من برای پایان نامه ام به ریشه یاب و برچسب زن طراحی nltkرو مثل hazmنتونستم
شده ی شما به زبان پایتون نیاز دارم.چطور باید دانلود و نصبش کنم.

ریشه‌یابی زبان محاوره‌ای

سلام

تا جایی که من تست کردم که لماتایزر نمی‌تونی کلمات محاوره‌ای مثل موارد زیر رو درست ریشه‌یابی کنه:
می‌گم. می‌شم. می‌رم.

از اونجایی که مسئله از دید مثل منی که خیلی سر در نمیارم از این موضوع ساده به نظر میاد و اینکه خیلی هم مهم هستش آیا راهی نداره که قوانین ریشه‌یابی کنونی رو برای این متون هم گسترش بدید؟

اگر در مورد اهمیتش شک دارید می‌شه گفتگو کرد.

درخواست توضیحات برچسب های جزء کلام هضم و سوال در مورد دادگان

با سلام
می خواستم برای برچسب های جز کلام که هضم تگ می زنه مرجعی معرفی کنید که مشخص کنه هر tag مربوط به چه نوع کلمه ای است. البته بیشترش رو متوجه شدم ولی هنوز در مورد برخی برچسب ها ابهام دارم.

من تمام پکیج های مربوط به پیکره دکتر بیجن خان را از بخش دانلود سایت دانشگاه تهران (سایت زیر) دانلود کردم.
http://ece.ut.ac.ir/dbrg/bijankhan/
ولی در مورد برخی تگ ها چیزی پیدا نکردم.

ضمناً یک سوال دیگر داشتم که آیا برچسب زنی براساس تگ های پیکره ی دادگان هم در هضم امکان پذیر است؟

با تشکر

مشکل نصب نسخه 0.5 روی ویندوز

من برای استفاده از نسخه ی 0.5 با خطای

AttributeError: 'module' object has no attribute wapiti

و برای استفاده از نسخه ی 0.4 با این خطا مواحه میشم

AttributeError: 'module' object has no attribute 'POSTagger'

منبعی از ترکیب هایی که نیم فاصله باید در آنها رعایت شود.

درود بر شما
من به دنبال مخزنی از کلامات هستم که در آنها باید نیم فاصله اعمال بشه.
برای مثال
نمی|می + فاصله + شود ---> نمی‌شود|می‌شود

در پروژه هضم این مورد رعایت میشه. ایا بر اساس منبعی خاص شناسایی میشه یا بر اساس متد خاصی هست و در کدوم قسمت سورس میشه بررسی کرد این موضوع رو(متاسفانه اصطلاحش رو نمی دونم.)
ممنون

untokenizer

Salam

Let's say a paragraph is tokenized into its sentences and each sentence is tokenized into its words.

Now that we have done some process on the words, we want to go back to paragraph again. Is there an untokenizer?

Simply doing a join will not work in some cases.

مشکل در پارس کردن جملات با هضم

ضمن عرض سلام و خسته نباشید.
بنده اوبونتو۱۴.۰۴ رو روی سیستمم نصب کردم سپس هضم نسخه ی ۵ رو هم روی پایتون ۳ نصب کردم و در نهایت هم فایل
resources
را دانلود و در پروژه قرار دادم.
همه چیز به درستی پیش میره تا اینکه به این خط کد میرسم:
parser.parse(word_tokenize('زنگها برای که به صدا درمیآید؟'))
و خطای زیر داده میشه:
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python3.4/dist-packages/nltk/parse/api.py", line 45, in parse
return next(self.parse_sents([sent], _args, *_kwargs))
File "/usr/local/lib/python3.4/dist-packages/hazm/DependencyParser.py", line 24, in parse_sents
return self.tagged_parse_sents(tagged_sentences, verbose)
File "/usr/local/lib/python3.4/dist-packages/hazm/DependencyParser.py", line 27, in tagged_parse_sents
input_file = tempfile.NamedTemporaryFile(prefix='malt_input.conll', dir=self.working_dir, delete=False)
File "/usr/lib/python3.4/tempfile.py", line 599, in NamedTemporaryFile
(fd, name) = _mkstemp_inner(dir, prefix, suffix, flags)
File "/usr/lib/python3.4/tempfile.py", line 339, in _mkstemp_inner
fd = _os.open(file, flags, 0o600)
FileNotFoundError: [Errno 2] No such file or directory: 'resources/malt_input.conllzhh502l2'
ممنون میشم بفرمایید دلیل ایجاد چنین خطایی چیه؟

علت افت دقت پارس

با عرض سلام و خسته نباشید
ببخشید بنده ابتدا اومدم و تمام جملات مورد نظرم رو داخل فایلی ریختم و سپس اون فایل رو به پارسر هضم دادم تا تک تک جملات موجود در فایل را پارس کند. اما به نظر می رسد دقت پارس نسبت به زمانی که جملات به صورت دستی یکی یکی به هضم داده می شوند، پایین می آید. به نظر شما علت چیست؟

کد بنده نیز به صورت زیر است:
with open(filewStemPars,"w+") as fwStemPars:
with open(fileOpinionStem,"r") as fr:
for line in fr:
try:
line = unicode(line.strip(),encoding='utf-8')
normalizer = Normalizer()
sentences = sent_tokenize(normalizer.normalize(line))
treeSen=parser.parse_sents([word_tokenize(sentence) for sentence in sentences])
for tree in treeSen:
fwStemPars.write(tree.to_conll(10).encode("utf-8"))
fwStemPars.write("\n")
print(treeSen.to_conll(10).encode("utf-8"))

    except Exception as e:
                        fwStemPars.write( "???????????????????????\n")

لیست کلمات بازدارنده (Stop words)

با سلام
به نظرم اضافه کردن لیست کلمات بازدارنده و فیلتر کردن این کلمات در قسمت پیش پردازش متون میتونه خیلی خوب باشه
با اینکه شاید کار خیلی چالشی نباشه ولی خب در اکثر پردازشها و آماده سازی مجموعه داده های آموزشی میتونه مورد استفاده قرار بگیره

در مورد ریشه یاب و لم یاب

سلام، وقت بخیر
چند تا سوال برام پیش اومده:
من با ورژن جاوای هضم دارم کار میکنم - نمیدونم توی ورژنهای دیگه هم همچین مشکلی هست یا نه
1-
داخل کلاس لماتایزر از استمر هم استفاده شده، یعنی اگر کلمه فعل نباشه میره سراغ استمر. سوال اینه که چرا در لماتایزر برای ریشه یابی کلمه از لیست کلمات استفاده می شه (words.dat)
ولی خود استمر از این لیست استفاده نمیکنه! (آیا دلیل خاصی برای این کار وجود داره؟

برای مثال حالات زیر پیش میاد:
تولیدکنندگان >> استمر >> تولیدکنندگ
تولیدکنندگان >> لماتایزر >> تولیدکنندگان

میشیگان >> استمر >> میشیگ
میشیگان >> لماتایزر >> میشیگان

2-
فکر کنم با اضافه کردن کد زیر به "اول و آخر" متد استم از کلاس استمر، مشکل کلماتی مثل تولیدکننده، پرنده و... که برای جمع بسته شدن ه به گاف تبدیل میشه، حل بشه
if (word.endsWith("گان")) {
String stem = word.substring(0, word.length() - 3).trim();
stem = StringUtils.strip(stem, "‌");
stem = stem + "ه";
if (this.words.contains(stem)) //این شرط باعث میشه کلمه ای مثل میشیگان استم نشه
return stem;
}
3-
و در آخر اینکه در لماتایزر سه تا شرط پشت سر هم اومدن که در زیر شماره گزاریشون کردم.
دلیل اینکه شرط 2 قبل از 3 اومده چیه؟ مشکلی پیش میاد اگه جای این دو رو عوض کنیم؟ - کلا دلیلی برای وجود شرط 2 هست؟
چون این ترتیب باعث میشه کلمه هایی مثل "تولیدات" که در فایل ذکر شده وجود دارند، شرط دوم براشون صدق کنه و درنتیجه عمل ریشه یابی براشون انجام نشه.

public String Lemmatize(String word, String pos) throws IOException {
1. if ((pos.length() == 0 || pos.equals("V")) && this.verbs.containsKey(word))
return this.verbs.get(word).toString();
2. if (this.words.contains(word))
return word;
String stem = new Stemmer().Stem(word);
3. if (this.words.contains(stem))
return stem;
return word;
}

با تشکر از شما..

خروجی پارسر وابستگی

با سلام و خسته نباشید،
سوالی از خدمتتون داشتم. در قسمت تحلیل وابستگی از نمادهایی برای برچسب‌های نحوی استفاده شده که معنای آن‌ها را پیدا نکردم و در سورس هم کاتالوگی که نشانگر معنای هر کدام از این برچسب‌ها باشد نیافتم. آیا امکانش هست که در این مورد راهنمایی بفرمایید؟

chunker

سلام
همونطور که توی راهنمای استفاده از برنامه هضم(کد پایتون) در سایت قرار دادید قسمتی تحت عنوان چانکر وجود داره
آیا چانکر در برنامه ان.هضم(کد سی شارپ) هم وجود داره؟؟
اگر وجود داره لطفا راهنمایی کنید چطور میشه ازش استفاده کرد
ممنون

wapiti

رو در پایتون 3.3.5 و ویندوز7 نصب کنم؟ wapitiسلام.ببخشید من چطور

مشکل در نصب

سلام من در سیستم عامل مک او اس وقتی می‌خوام توی ترمینال هضم رو برای پایتون نصب کنم در آخر مراحل نصب این ارور میاد:
error: could not create '/Library/Python/2.7/site-packages/hazm': Permission denied

نصب پکیج libwapiti

سلام،
در آخرین تغییرات انجام شده در هضم از تولکیت برچسب زن (wapiti) استفاده شده که با توجه به ویژگی های این تولکیت مسلماً اینکار خیلی خوبه.
فقط اینکه من در نصب این پیکیج دچار مشکل شدم و به طبع پروژه رو در زبان پایتون نمیتونم اجرا کنم.
نسخه پایتون من 3.4 هست و فکر میکنم مشکل ناشی از عدم تطابق این نسخه با vc++ 2013 باشه که در حال حاضر دارم.
تا اونجا که متوجه شدم برای ویندوز و نسخه 3.3 به بعد پایتون نسخه vc++ 2010 باید مطابقت داشته باشه، ولی متاسفانه با نصب این ورژن هم من هنوز نتونستم که این پکیج رو نصب کنم. (در هنگام نصب خطای عدم پیدا شدن vcvarsall.bat رو میگیرم.)
میخواستم ببینم که آیا راه حلی برای این مشکل وجود داره؟
ممنون

PEP8

Salam

Simply PEP8! I think it is doable witha completely automatic script!

مشکل parser

from __future__ import unicode_literals
from hazm import *

tagger = POSTagger(model='resources/postagger.model')
lemmatizer = Lemmatizer()
parser = DependencyParser(tagger=tagger, lemmatizer=lemmatizer)
temp = 'زنگ‌ها برای که به صدا درمی‌آید؟'
parser.parse(word_tokenize(temp))

سلام
من بعد از اجرای کد بالا که به صورت مستقیم در مثال ها آورده شده ، به ارور زیر بر میخورم:

runfile('/home/aminbag/untitled1.py', wdir='/home/aminbag')
Traceback (most recent call last):

  File "", line 1, in 
    runfile('/home/aminbag/untitled1.py', wdir='/home/aminbag')

  File "/usr/lib/python2.7/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 685, in runfile
    execfile(filename, namespace)

  File "/usr/lib/python2.7/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 78, in execfile
    builtins.execfile(filename, *where)

  File "/home/aminbag/untitled1.py", line 18, in 
    parser.parse(word_tokenize(temp))

  File "/usr/local/lib/python2.7/dist-packages/nltk-3.0.5-py2.7.egg/nltk/parse/api.py", line 45, in parse
    return next(self.parse_sents([sent], *args, **kwargs))

  File "/usr/local/lib/python2.7/dist-packages/hazm-0.5.2-py2.7.egg/hazm/DependencyParser.py", line 24, in parse_sents
    return self.parse_tagged_sents(tagged_sentences, verbose)

  File "/usr/local/lib/python2.7/dist-packages/hazm-0.5.2-py2.7.egg/hazm/DependencyParser.py", line 41, in parse_tagged_sents
    if self._execute(cmd, verbose) != 0:

  File "/usr/local/lib/python2.7/dist-packages/nltk-3.0.5-py2.7.egg/nltk/parse/malt.py", line 265, in _execute
    p = subprocess.Popen(cmd, stdout=output, stderr=output)

  File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)

  File "/usr/lib/python2.7/subprocess.py", line 1335, in _execute_child
    raise child_exception

OSError: [Errno 2] No such file or directory

بقیه توابع را آزمایش کردم و بدون مشکل کار میکنند . ولی در این تابع به این مشکل بر میخورم
در ضمن فولدر ریسورس ها نیز دقیقا کنار فایل پایتونم هست

ریشه یاب

با سلام
در مورد ریشه یاب ابزار هضم فکر میکنم که بسیار خوب عمل میکنه ولی کارای بهتری هم شاید بشه انجام داد و در حال حاضر در حال بررسی هستم تا اگر بشه بهبودهایی رو بتونم اعمال کنم.
به طور مشخص قبل از اینکه کلمه به تابع ریشه یاب داده بشه شاید اعمال برخی از پیش پردازشها نتیجه کار رو بهتر کنه.


++ پانوشت: البته با توضیحات جناب نوریان متوجه شدم که در تابع نرمال سازی متن تا حدود زیادی اینکار انجام میشه


من تابع بسیار ساده ای در این رابطه آماده کردم که به محض تکمیل شدن به اشتراک میگذارم.


++ پانوشت: فکر نمیکنم فعلا نیازی به این تابع من وجود داشته باشه چون تابع نرمال سازی هضم دقیقا همینکار رو انجام میده


دوماً، در خصوص لیست پسوندهایی هم که در ریشه یاب آمده اند، میخواستم ببینم که آیا ترتیب در آنها لحاظ شده؟
ممنون میشم در هر کدام از موارد نظر دوستان رو هم بدونم

چسباندن «های» به کلمه

برام جالب بود که پیرایشگرهای نیم‌فاصله سراغ «های» نمی‌رفتند.
و جالب‌تر اینجا بود که هضم هم هنوز به سراغشون نرفته‌بود.
چه مشکلی وجود داره که «های» رو جدا نکردیم؟

تگ های pos tagger

با سلام و عرض ادب میخواستم بدونم تگ های
Ne,AJe,DET

نشان دهنده ی چه دسته کلماتی هستند و همچنین این که نسخه ی جاوای پکیجتون تا چه حد مطابق نسخه ی پایتون آپدیت شده

مشکل نرمال‌کردن اعداد اعشاری انگلیسی

در متن هایی مثل این متن:

         عراق سال 2012 قراردادی به ارزش 4.2 میلیارد دلار برای خرید تجهیزات نظامی با روسیه          امضا  کرد. 

که عدد اعشاری انگلیسی دارند،‌بعد از نقطه یک فاصله داده می شود و رقم ها فارسی می شوند.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.