0

PythonでWordNetとNLTKを使って意味論的距離を持つ基本的なテキスト類似性ルーチンを実装したいと思います。 2つの形成されたベクトルaとbの間のsynsets、hyponyms、hypernyms、meronyms、metonymsと計算距離で2つの概念/ prases/categories AとBを拡張します。私はこれらをどのように計算するのかは分かりません。恐らくコサイン距離になります。タクソノミーマッピング/マージングのためのWorldNet synsetsによる基本的なテキストの類似性

ほとんどの場合、私の入力データはフレーズではなく、固有名詞(ブランドまたは製品カテゴリの製品名)で構成されています。 たとえば、 "リゾート"は "高級ホテル"または "ブラックキャビア"は "グルメ"、A - "ブラックキャビア"、B - "グルメ"であると判断したいと思います。

これはうまくいく可能性があります。また、WordNetを上ったり下ろしたりして、少し洗練された状態にして、ハイレベル/ハイパーニムで1レベル上下させる方法はありますか?

私はWhooshなどの洗練されたものを使用しないで、十分に機能する簡単な基本的なソリューションを探しています。

WordNetより優れたものを使うべきでしょうか?


UPDATE:

私は、各名詞句に次のような方法(WordNetのNLTK &を使用して)を処理しています: 1.私はsynset(名詞のみ)を収集し、フレーズ内の各単語について、その後、私は補完それはsynsetの各要素の上位語と下位語のsynsetを持つ。今のところ、すべてのsynsetsを階層を無視してリストに入れます。 2.私は各カテゴリカテゴリを記述するキーワードのためのプロセスを繰り返します。 3.各カテゴリとターゲットのsynsetのリストがあります。それぞれの距離を計算するだけです(コサインまたはWuとパーマーの距離)。私は2つのベクトルのペアワイズ距離を集めて合計し、カテゴリまたはターゲットを記述するキーワードの数で正規化します。それから私は最小距離を選ぶ。

かなり基本的で非効率的なサウンドです。それをより良くするための次のステップは何ですか?

私は最初からそれを行うことに興味があります。それは、どのように動作するのか、どのように行う必要があるのか​​を理解するための最善の練習です。


例: WORD_LIST - ターゲット: [ '学校'、 '子供'、 '先生']

カテゴリ: [[ 'ビジネス'、 '組織'、 '会社']、 [教育]、[学校]、[大学]]

対象概念 '教育'の拡張リスト、3キーワード: [Synset( 'school.n.01')、Synset( 'school.n。 02)、Synset( 'school.n.03')、Synset( 'school.n.04')、Synset( 'school.n.05')、Synset( 'school.n.06' 'school.n.07')、Synset( 'child.n.01')、Synset( 'kid.n.02')、S Synset( 'teacher.n.01')、Synset( 'teacher.n.05')、Synset( 'teacher.n.01')、yyset( 'kyd.n.01' Synset( 'education.instance.n.01')、Synset( 'building.n.01')、Synset( 'education.n.03')、Synset( 'body.n.02')、Synset Synset( 'education_institution.n.01')、Synset( 'animal_group.n.01')、Synset( 'academy.n.03')、Synset( 'alma_mater.n。 01)、Synset( 'conservatory.n.01')、Synset( 'correspondence_school.n.01')、Synset( 'crammer.n.03')、Synset( 'dance_school.n.01' 、Synset( 'day_school.n.02')、Synset( 'direct-grant_school.n.01')、Synset( 'driving_school.n.01')、Synset('finishing_school.n.01 ' .01 ')、Synset(' flying_school.n.01 ')、Synset(' grade_school.n.01 ')、Synset(' graduate_school.n。01)、Synset( 'language_school.n.01')、Synset( 'night_school.n.01')、Synset( 'nursing_school.n.01')、Synset( 'private_school.n.01' 'public_school.n.01')、Synset( 'religious_school.n.01')、Synset( 'riding_school.n.01')、Synset( 'secondary_school.n.01')、Synset( 'secretarial_school.n.01' ')、Synset(' sunday_school.n.01 ')、Synset(' technical_school.n.01 ')、Synset(' training_school.n.01 ')、Synset(' veterinary_school.n.01 ')、Synset(' Synset( 'art_nouveau.n.01')、Synset( 'ashcan_school.n.01')、Synset( 'deconstructivism.n.01')、Synset( 'day_school.n.03' )、Synset( 'historical_school.n.01')、Synset( 'lake_poets.n.01')、Synset( 'pointillism.n.01')、Synset( 'secession.n.01')]

拡張されたリストのカテゴリ概念「ビジネス」、3つのキーワード、223の拡張リスト: [Synset( 'business.n.01')、Synset( 'commercial_enterprise.n.02')、Synset( 'occupation.n Synset( 'business.n.04')、Synset( 'business.n.05')、Synset( 'business.n.06')、Synset( 'business.n.07')、Synset ( 'client.n.01')、Synset( 'business.n.09')、Synset( 'organization.n.01')、Synset( 'arrangement.n.03')、Synset( 'administration.n。 02)、Synset( 'organization.n.04')、Synset( 'organization.n.05')、Synset( 'organization.n.06')、Synset 'company.n.01')、Synset( 'company.n.02')、Synset( 'company.n.03')、Synset( 'company.n.04')、Synset( 'caller.n.01' ')、Synset(' company.n.06 ')、Synset(' party.n.03 ')、Synset(' ship's_company.n.01 ')、Synset(' company.n.09 ')、Synset ( 'enterprise.n.02')、Synset( 'commerce.n.01')、Synset( 'activity.n.01')、Synset( 'concern.n.04')、Synset( 'aim.n。 02)、Synset( 'business_activity.n.01')、Synset( 'sector.n.02')、Synset( 'people.n.01')、Synset( 'acting.n.01')、Synset Synset( 'structure.n.03')、Synset( 'body.n.02')、Synset( 'administration.n.01')、Synset( 'orderliness.n.01')、Synset ')、Synset(' activity.n.01 ')、Synset(' beginning.n.05 ')、Synset(' Synset( 'organization.n.01')、Synset( 'organization.n.01')、Synset( 'organit.n.01' )、Synset( 'social.gathering.n.01')、Synset( 'set.n.05')、Synset( 'complement.n.03')、Synset( 'unit.n.03')、Synset( 'agency synset( 'chain.n.04')、Synset( 'company.n.02')、Synset( 'brokerage.n.02')、Synset( 'carrier.n.05')、Synset 、Synset( 'franchise.n.02')、Synset( 'manufacturer.n.01')、Synset( 'partnership.n.01')、Synset( 'processor.n.01')、Synset( 'shipbuilder。 Synset( 'underburformer.n.02')、Synset( 'advertising.n.02')、Synset( 'agribusiness.n.01')、Synset( 'butchery.n.02')、 Synset( 'construction.n.07')、Synset( 'discount_business.n.01')、Synset( 'employee-owned_enterprise.n.01')、Synset( 'field.n.06')、Synset( 'finance Synset( 'fishing.n.02')、Synset( 'industry.n.02')、Synset( 'packaging.n.01')、Synset( 'Printing.n.02')、Synset Synset( 'tourism.n.01')、Synset( 'published.n.04')、Synset( 'real-estate_business.n.01')、Synset( 'storage.n.03' transport.n.05 ')、Synset(' vent Synset( 'accounting.n.01')、Synset( 'appointment.n.05')、Synset( 'career.n.01')、Synset( 'catering.n.01' )、Synset( 'confectionery.n.03')、Synset( 'employment.n.02')、Synset( 'farming.n.02')、Synset( 'game.n.10')、Synset( 'metier Synset( 'photos.n.03')、Synset( 'position.n.06')、Synset( 'profession.n.02')、Synset( 'sport.n.02')、Synset Synset( 'trade.n.02')、Synset( 'treadmill.n.03')、Synset( 'occasions.n.01')、Synset( 'land-office_business.n.01')、Synset Synset( 'big_business.n.01')、Synset( 'shtik.n.02')、Synset( 'adhocracy.n.01')、Synset( 'affiliate.n.02' )、Synset( 'alliance.n.03')、Synset( 'association.n.01')、Synset( 'blue.n.03')、Synset( '官僚n.n.03')、Synset Synset( 'Defectation.n.01')、Synset( 'enterprise.n.02')、Synset( 'establishment.n.04')、Synset( 'defense.n.09')、Synset 、Synset( 'federation.n.01')、Synset( 'fiefdom.n.02')、Synset( 'fire_brigade.n.01')、Synset( 'force.n.04')、Synset( 'girl_scouts。 Synset( 'grey.n.04')、Synset( 'hierarchy.n.02')、Synset( 'ho Synset( 'line.n.06')、Synset( 'institution.n.01')、Synset( 'line_of_defense.n.01')、Synset( 'line_organization.n.01')、Synset( 'machine.n.03' )、Synset( 'machine.n.05')、Synset( 'musical_organization.n.01')、Synset( 'nongovernmental_organization.n.01')、Synset( 'party.n.01')、Synset( 'peace_corps Synset( 'polity.n.02')、Synset( 'pool.n.03')、Synset( 'professional_organization.n.01')、Synset( 'quango.n.01')、Synset 、Synset( 'tannany_hall.n.01')、Synset( 'union.n.01')、Synset( 'unit.n.03')、Synset( 'calendar.n.01')、Synset( 'classification_system。 Synset( 'contrivance.n.04')、Synset( 'coordinate_system.n.01')、Synset( 'data_structure.n.01')、Synset( 'design.n.02')、 Synset( 'distribution.n.01')、Synset( 'genetic_map.n.01')、Synset( 'kinship_system.n.01')、Synset( 'lattice.n.01')、Synset( 'living_arrangement.n Synset( 'ontology.n.01')、Synset( 'county_council.n.01')、Synset( 'curia.n.01')、Synset( 'executive.n.02')、Synset ( 'government_officials.n.01')、Synset( 'judiciary.n.01')、Synset( 'management.n。02)、Synset( 'top_brass.n.01')、Synset( 'nonprofit_organization.n.01')、Synset( '合理化.n.04')、Synset( 'reorganization.n.01' Synset( 'syndication.n.01')、Synset( 'listing.n.02')、Synset( 'order.n.15')、Synset( 'randomization.n Synset( 'colonization.n.01')、Synset( 'colonization.n.01')、Synset( 'localization.n.01')、Synset ( 'communion.n.02')、Synset( 'federation.n.03')、Synset( 'unionization.n.01')、Synset( 'broadcasting_company.n.01')、Synset( 'bureau_de_change.n。 01)、Synset( 'car_company.n.01')、Synset( 'closed_shop.n.01')、Synset( 'corporate_investor.n.01')、Synset( 'distributor.n.03')、Synset Synset( 'drug_company.n.01')、Synset( 'east_india_company.n.01')、Synset( 'electronics_company.n.01')、Synset( 'film-company.n.01')、Synset Synset( 'food_company.n.01')、Synset( 'furniture_company.n.01')、Synset( 'holding_company.n.01')、Synset( 'joint-stock_company.n.01') 、Synset( 'limited_company.n.01')、Synset( ' Synset( 'mining_company.n.01')、Synset( 'mover.n.04')、Synset( 'oil_company.n.01')、Synset( 'open_shop.n.01' )、Synset( 'packaging_company.n.01')、Synset( 'pipeline_company.n.01')、Synset( 'printing_concern.n.01')、Synset( 'record_company.n.01')、Synset( 'サービスSynset( 'shipper.n.02')、Synset( 'shipping_company.n.01')、Synset( 'steel_company.n.01')、Synset( 'stock_inpany.n.01')、Synset 、Synset( 'subsidiary_company.n.01')、Synset( 'target_company.n.01')、Synset( 'think_tank.n.01')、Synset( 'transportation_company.n.01')、Synset( 'union_shop。 Synset( 'freemasonry.n.01')、Synset( 'ballet_company.n.01')、Synset( 'white_knight.n.01')、Synset( 'trainband.n.01' Synset( 'minstrelsy.n.01')、Synset( 'minstrel_show.n.01')、Synset( 'minstrelsy.n.01')、Synset( 'opera_company.n Synset( 'theater_company.n.01')、Synset( 'attendance.n.03')、Synset( 'cohort.n.01')、Synset( 'number.n.07')、Synset ( 'fatigue_party.n.01')、Synset( 'landing_party.n.01')、Synset( 'party_to_the_action Synset( 'rescue_party.n.01')、Synset( 'search_party.n.01')、Synset( 'stretcher_party.n.01')、Synset( 'war_party.n.01') ]

カテゴリ概念 '教育'の拡張リスト - 97 synsets: [Synset( 'education.n.01')、Synset( 'education.n.02')、Synset( 'education.n.03' )、Synset( 'education.n.04')、Synset( 'education.n.05')、Synset( 'department_of_education.n.01')、Synset( 'school.n.01')、Synset Synset(「school.n.03」)、Synset(「school.n.04」)、Synset(「school.n.05」)、Synset(「school.n.06」)、Synset 、Synset( 'school.n.07')、Synset( 'university.n.01')、Synset( 'university.n.02')、Synset( 'university.n.03')、Synset( ' Synset( 'learning.n.01')、Synset( 'profession.n.02')、Synset( 'upbringing.n.01')、 Synset( 'executive_department.n.01')、Synset( 'educational_institution.n.01')、Synset( 'building.n.01')、Synset( 'education Synset( 'education_institution.n.01')、Synset( 'animal_group.n.01')、Synset( 'body.n.02')、Synset( 'time_period.n.01' 、Synset( 'body.n.02')、Synset( 'establishment.n.04')、Synset( 'education_institution.n.01')、Synset( 'coeducation.n.01')、Synset( 'continuing_education。 Synset( 'course.n.01')、Synset( 'elementary_education.n.01')、Synset( 'extension.n.04')、Synset( 'extracurricular_activity.n.01')、 Synset( 'work-study_program.n.01')、Synset( 'higher_education.n.01')、Synset( 'secondary_education.n.01')、Synset( 'team_teaching.n.01')、Synset Synset( 'eruditeness.n.01')、Synset( 'experience.n.01')、Synset( 'foundation.n.04')、Synset( 'physical_education.n.01')、Synset 、Synset(「acculturation.n.03」)、Synset(「mastering.n.01」)、Synset(「school.n.03」)、Synset(「self-education.n.01」)、Synset Synset( 'vocational_training.n.01')、Synset( 'teaching.n.01')、Synset( 'academy.n.03')、Synset( 'alma_mater.n.01' )、Synset( 'conservatory.n.01')、Synset( 'correspondence_s chin.n.01 ')、Synset(' crammer.n.03 ')、Synset(' dance_school.n.01 ')、Synset(' dancing_school.n.01 ')、Synset(' day_school.n.02 ' )、Synset( 'direct_ grant_school.n.01')、Synset( 'driving_school.n.01')、Synset('finishing_school.n.01 ')、Synset(' flying_school.n.01 ')、Synset Synset( 'graduate_school.n.01')、Synset( 'night_school.n.01')、Synset( 'nursing_school.n.01')、Synset( ' ')、Synset(' private_school.n.01 ')、Synset(' public_school.n.01 ')、Synset(' religious_school.n.01 ')、Synset(' riding_school.n.01 ' Synset( 'saryay_school.n.01')、Synset( 'technical_school.n.01')、Synset( 'training_school.n.01')、 )、Synset( 'veterinary_school.n.01')、Synset( 'conservatory.n.02')、Synset( 'day_school.n.03')、Synset( 'art_nouveau.n.01')、Synset( 'ashcan_school Synset(「deconstructivism.n.01」)、Synset(「historical_school.n.01」)、Synset(「lake_poets.n.01」)、Synset(「pointillism.n.01」)、Synset 、Synset( 'secession.n。01)、Synset( 'gown.n.02')、Synset( 'varsity.n.01')、Synset( 'city_university.n.01')、Synset( 'oxbridge.n.01' 'redbrick_university.n.01')、Synset( 'multiversity.n.01')、Synset( 'open_university.n.01')]

私のターゲットの拡張リスト、57件のsynset: [Synset( '学校Synset( 'school.n.02')、Synset( 'school.n.03')、Synset( 'school.n.04')、Synset( 'school.n.01')、Synset 、Synset(「school.n.06」)、Synset(「school.n.07」)、Synset(「child.n.01」)、Synset(「kid.n.02」)、Synset(「kyd。 Synset( 'teacher.n.02')、Synset( 'kid.n.05')、Synset( 'teacher.n.01')、Synset( 'teacher.n.02' Synset( 'education.instance.n.01')、Synset( 'building.n.01')、Synset( 'education.n.03')、Synset( 'body.n.02')、Synset( 'time_period.n Synset(「education_institution.n.01」)、Synset(「animal_group.n.01」)、Synset(「academy.n.03」)、Synset(「alma_mater.n.01」)、Synset ( 'conservatory.n.01' )、Synset( 'dancing_school.n.01')、Synset( 'crammer.n.03')、Synset( 'dance_school.n.01')、Synset( 'dancing_school.n.01' Synset( 'finishing_school.n.01')、Synset( 'flying_school.n.01')、Synset( 'finish_school.n.01')、Synset Synset( 'night_school.n.01')、Synset( 'gradual_school.n.01')、Synset( 'school_next')、Synset( ' Synset( 'public_school.n.01')、Synset( 'religious_school.n.01')、Synset( 'nursing_school.n.01')、Synset( 'private_school.n.01' )、Synset( 'secondary_school.n.01')、Synset( 'secretarial_school.n.01')、Synset( 'sunday_school.n.01')、Synset( 'technical_school.n.01')、Synset( 'training_school Synset( 'veterinary_school.n.01')、Synset( 'conservatory.n.02')、Synset( 'day_school.n.03')、Synset( 'art_nouveau.n.01')、Synset 、シンセ( 'ashcan_school.n.01')、シンセット( 'deconstructivism.n.01')、シンセ( 'historical_school.n.01')、シンセ( 'lake_poets.n.01')、シンセ( ' n.01 ')、シンセット('今97

対象とビジネス、分裂の間のペアワイズ呉とパーマーの距離を計算 - 57、ビジネス - - 223、および教育secession.n.01' )]


私は3つのベクトル、目標を持っています57x223 = 12711;目標と教育の間に、57x97 = 5529で割ります。

ビジネス距離にターゲット:2305.709117171037/5529 = 0.9125370052417936 教育の距離にターゲット:5045.417101981877/12711 = 0.39693313680921066

分の距離は教育にあります。それは正解です。

答えて

0

WordNet +いくつかの類似点は解決策になります。 また、Word2Vecを使用して、WordNet synset/* nyms検索から取得した単語の意味的距離を特定することもできます。

誰かが特定のライブラリを手伝ってもいいかもしれません(直接使用できる瞬間に私の頭に浮かぶものは何もありません)。

関連する問題