问题标签 [sentence-similarity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1865 浏览

python - 在一元语言模型中计算的概率是多少?

我为句子完成实现创建了一个一元语言模型。我有所有单词及其出现次数。

我对如何从这里比较它们感到困惑。我认为我必须计算每个案例的概率并取最大的一个。

因此,如果我有 3 个可以使用的单词,我会比较每个单词的出现次数并取最高的 ? 这是正确的实施吗?

或者我将每个单词的出现次数除以训练集的所有(不同?)单词的数量?

谢谢你。

0 投票
1 回答
278 浏览

string - 这已经是字符串相似度算法了吗?

我不熟悉字符串相似性算法,除了 Levenshtein 距离,因为这就是我正在使用的算法,但结果并不理想。

所以我有点想实现一个递归算法的想法,但我想知道它是否已经存在,这样我就可以利用其他人的专业知识。

以下是算法示例:

字符串 1:“保罗·约翰逊”

字符串 2:“约翰·保尔森”

第 1 步:找到所有最长的匹配项

第一场比赛:“保罗”

第 2 场比赛:“约翰”

第 3 场比赛:“儿子”

第 4 场比赛:“”

第 2 步:使用以下公式计算每个匹配项的分数:((match.len/string.len)*match.len) 这允许更长的字符串以基于字符串长度的平衡比率进行更多加权。

比赛 1:(4/12)*4 = 1.333...

第 2 场比赛:1.333...

第 3 场比赛:0.75

第 4 场比赛:0.083

第 3 步:在更大的范围内执行第 1 步和第 2 步,(匹配的匹配项。)这我还没有完全弄清楚。但我的想法是,如果“儿子”出现在“保罗·约翰”之后,并且出现在“约翰·保罗”之后,那么这应该很重要。

第四步:将所有计算出来的分数相加。

分数:1.333 + 1.333 + .75 + .083333 = 3.4999...(加上第 3 步产生的任何分数)

这对任何人来说都很熟悉吗?我希望其他人已经麻烦按照这些思路实际制作算法,这样我就不必自己弄清楚了。

0 投票
2 回答
791 浏览

nlp - 使用 NLP 进行句子校正

我正在尝试在我的网站上构建一个聊天助手,它应该回答诸如“你能跟踪我的订单吗?”、“XXX 的表现如何”之类的问题。大部分工作在于理解用户的查询。

我正在使用“命名实体识别器”和“文本解析器”来处理查询。在此之前,我通过“拼写检查器”传递查询以减少错误,例如,

它在大多数情况下都有效,但在以下情况下失败,

在这种情况下,拼写校正器不会更正单词“water”,并且 NER 无法将实体识别为“order”。

问题是“你能追踪我的水吗?” 在其他上下文中可能是正确的句子,但在我的上下文(域)中绝对是错误的。所以我应该能够纠正这句话。

我被困在这里。

无论如何我可以使用预定义的查询和/或用户输入查询的统计数据来纠正这些句子吗?

0 投票
1 回答
658 浏览

python - 如何从 LSA 中获取相似度

我正在研究潜在语义分析,我正在尝试从 2 个文档中获取相似性。我在 Python 上运行我的潜在语义分析代码,当我运行它时,我得到:

我如何从这些数字中找到相似之处?

0 投票
2 回答
305 浏览

nltk - 通过 WorldNet 同义词集进行分类映射/合并的基本文本相似性

我想在 Python 中使用 WordNet 和 NLTK 实现一个具有语义距离的基本文本相似性例程。这就是想法:使用同义词、下位词、上位词、分词、转喻扩展两个概念/短语/类别 A 和 B,并计算两个形成的向量 a 和 b 之间的距离。我不确定我将如何计算这些,也许是余弦距离。

大多数情况下,我的输入数据不是由短语组成,而是由专有名词或名词(带有品牌或产品类别的产品名称)组成。例如,我想确定“度假村”是“豪华酒店”或“黑鱼子酱”是“美食”,A - “黑鱼子酱”,B - “美食”。

这可以在多大程度上起作用,以及我如何在 WordNet 上上下移动以使其更复杂一点,然后使用hypo/hyper-nyms 上下一层。

我正在寻找运行良好的简单基本解决方案,而不是使用诸如 Whoosh 之类的复杂东西。

我应该使用比 WordNet 更好的东西吗?


更新:

我按以下方式处理每个名词短语(使用 NLTK 和 WordNet): 1. 对于短语中的每个单词,我收集一个同义词集(仅限名词),然后用同义词集中的每个元素的上位词和下位词的同义词集对其进行补充. 现在,我将所有同义词集合到列表中,忽略层次结构。2. 我对描述我的每个类别类别的关键字重复该过程。3. 现在我有每个类别和目标的同义词列表。只需计算到每个的距离(余弦或 Wu 和 Palmer 的距离)。我在我的两个向量中收集成对距离,将它们相加,通过描述类别或目标的关键字数量进行归一化。然后我选择一个最小距离。

听起来很基本且效率低下。下一步是什么让它变得更好?

我有兴趣从头开始,这也是了解事物如何工作以及需要如何完成的最佳练习。


示例:word_list - 目标:['school', 'kids', 'teacher']

类别:[['商业','组织','公司'],['教育','学校','大学']]

目标概念“教育”的扩展列表,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'), Synset('school.n.07'), Synset('child.n.01') , Synset('kid.n.02'), Synset('kyd.n.01'), Synset('child.n.02'), Synset('kid.n.05'), Synset('老师。 n.01'), Synset('teacher.n.02'), Synset('educational_institution.n.01'), Synset('building.n.01'), Synset('education.n.03'), Synset('body.n.02'), Synset('time_period.n.01'), Synset('educational_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('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('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'), Synset('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('conservatory.n.02')、Synset('day_school.n.03')、Synset( 'art_nouveau.n.01'), Synset('ashcan_school.n.01'), Synset('deconstructivism.n.01'), Synset('historical_school.n.01'), Synset('lake_poets.n.01 '), Synset('pointillism.n.01'), Synset('secession.n.01')]

类别概念'business'的扩展列表,3个关键字,扩展列表中的223个:[Synset('business.n.01'), Synset('commercial_enterprise.n.02'), Synset('occupation.n.01') , Synset('business.n.04'), Synset('business.n.05'), Synset('business.n.06'), Synset('business.n.07'), Synset('clientele. 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('构成.n.02'), 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('social_group.n.01'), Synset('结构。 n.03'), Synset('body.n.02'), Synset('administration.n.01'), Synset('orderliness.n.01'), Synset('activity.n.01'), Synset('beginning.n.05'), Synset('institution.n.01'), Synset('army_unit.n.01'), Synset('friendship.n.01'), Synset('organization.n .01'), Synset('visitor.n.01'), Synset('social_gathering.n.01'),Synset('set.n.05'), Synset('complement.n.03'), Synset('unit.n.03'), Synset('agency.n.02'), Synset('brokerage.n .02'), Synset('carrier.n.05'), Synset('chain.n.04'), Synset('firm.n.01'), Synset('franchise.n.02'), Synset ('manufacturer.n.01'), Synset('partnership.n.01'), Synset('processor.n.01'), Synset('shipbuilder.n.03'), Synset('underperformer.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.n.01'), Synset('fishing.n .02'), Synset('industry.n.02'), Synset('packaging.n.01'),Synset('printing.n.02'), Synset('publication.n.04'), Synset('real-estate_business.n.01'), Synset('storage.n.03'), Synset('tourism .n.01'), Synset('transportation.n.05'), Synset('venture.n.03'), Synset('accountancy.n.01'), Synset('appointment.n.05') , Synset('career.n.01'), Synset('餐饮.n.01'), Synset('confectionery.n.03'), Synset('employment.n.02'), Synset('farming. n.02'), Synset('game.n.10'), Synset('metier.n.02'), Synset('photography.n.03'), Synset('position.n.06'), Synset('profession.n.02'), Synset('sport.n.02'), Synset('trade.n.02'), Synset('treadmill.n.03'), Synset('occasions.n .01'), Synset('land-office_business.n.01'), Synset('trade.n.03'),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('bureaucracy.n.03'), Synset('company.n.04'), Synset ('defense.n.09'), Synset('deputation.n.01'), Synset('enterprise.n.02'), Synset('establishment.n.05'), Synset('federation.n. 01'), Synset('fiefdom.n.02'), Synset('fire_brigade.n.01'), Synset('force.n.04'), Synset('girl_scouts.n.01'), Synset( 'grey.n.04'), Synset('hierarchy.n.02'), Synset('host.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('non Government_organization.n.01'), Synset('party.n.01'), Synset('peace_corps.n .01')、Synset('polity.n.02')、Synset('pool.n.03')、Synset('professional_organization.n.01')、Synset('quango.n.01')、Synset ('tammany_hall.n.01'), Synset('union.n.01'), Synset('unit.n.03'), Synset('calendar.n.01'), Synset('classification_system.n. 01')、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.01 '), 同义词集('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('self-organization.n.01'), Synset('syndication.n.01'), Synset('listing.n.02 '), Synset('order.n.15'), Synset('randomization.n.01'), Synset('systematization.n.01'), Synset('territorialization.n.01'), Synset('集体化.n.01'), Synset('colonization.n.01'), Synset('communization.n.02'), Synset('federation.n.03'), Synset('unionization.n.01' ), 同义词集('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('dot-com.n.01'), Synset('drug_company.n.01'), Synset('east_india_company.n.01'), Synset( 'electronics_company.n.01')、Synset('film_company.n.01')、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('livery_company.n.01')、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('service.n.04'), Synset('shipper.n.02' ), Synset('shipping_company.n.01'), Synset('steel_company.n.01'), Synset('stock_company.n.01'), Synset('subsidiary_company.n.01'), Synset('target_company .n.01'), Synset('think_tank.n.01'), Synset('transportation_company.n.01'), Synset('union_shop.n.01'), Synset('white_knight.n.01') , Synset('trainband.n.01'), Synset('freemasonry.n.01'), Synset('ballet_company.n.01'), Synset('chorus.n.05'), Synset('circus. n.01'), Synset('minstrel_show.n.01'), Synset('minstrelsy.n.01'), Synset('opera_company.n.01'), Synset('theater_company.n.01'),同义词集('出勤.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.n.01'), Synset('rescue_party.n.01'), Synset('search_party.n.01'), Synset('stretcher_party.n.01'), Synset('war_party .n.01')]

类别概念“教育”的扩展列表 - 97 个同义词集:[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('school.n.02') , Synset('school.n.03'), Synset('school.n.04'), Synset('school.n.05'), Synset('school.n.06'), Synset('school. n.07'), Synset('university.n.01'), Synset('university.n.02'), Synset('university.n.03'), Synset('activity.n.01'), Synset('content.n.05'), 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.n.03'), Synset('body.n.02'), Synset('time_period.n.01'), Synset('educational_institution.n.01'), Synset('animal_group.n.01'), Synset('body.n.02'), Synset('establishment.n.04'), Synset('educational_institution.n .01')、Synset('coeducation.n.01')、Synset('continuing_education.n.01')、Synset('course.n.01')、Synset('elementary_education.n.01')、Synset ('extension.n.04'), Synset('extracurricular_activity.n.01'), Synset('higher_education.n.01'), Synset('secondary_education.n.01'), Synset('team_teaching.n. 01'), Synset('work-study_program.n.01'), Synset('enlightenment.n.01'), Synset('eruditeness.n.01'), Synset('experience.n.01'),Synset('foundation.n.04'), Synset('physical_education.n.01'), Synset('acculturation.n.03'), Synset('mastering.n.01'), Synset('school.n .03'), Synset('self-education.n.01'), Synset('special_education.n.01'), Synset('vocational_training.n.01'), Synset('teaching.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('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('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'), Synset('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 ('conservatory.n.02'), Synset('day_school.n.03'), Synset('art_nouveau.n.01'), Synset('ashcan_school.n.01'), Synset('deconstructivism.n. 01'), Synset('historical_school.n.01'), Synset('lake_poets.n.01'), Synset('pointillism.n.01'), Synset('secession.n.01'), Synset('gown.n.02'), Synset('varsity.n.01'), Synset('city_university.n.01'), Synset('oxbridge.n.01'), Synset('redbrick_university .n.01'), Synset('multiversity.n.01'), Synset('open_university.n.01')]

我的目标的扩展列表,57 个同义词集:[Synset('school.n.01'), Synset('school.n.02'), Synset('school.n.03'), Synset('school.n. 04'), Synset('school.n.05'), Synset('school.n.06'), Synset('school.n.07'), Synset('child.n.01'), Synset( 'kid.n.02'), Synset('kyd.n.01'), Synset('child.n.02'), Synset('kid.n.05'), Synset('teacher.n.01 '), Synset('teacher.n.02'), Synset('educational_institution.n.01'), Synset('building.n.01'), Synset('education.n.03'), Synset(' body.n.02'), Synset('time_period.n.01'), Synset('educational_institution.n.01'), Synset('animal_group.n.01'), Synset('academy.n.03' ), Synset('alma_mater.n.01'), Synset('conservatory.n.01'), Synset('communication_school.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( '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'), Synset('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('conservatory.n.02'), Synset('day_school.n.03'), Synset('art_nouveau.n .01')、Synset('ashcan_school.n.01')、Synset('deconstructivism.n.01')、Synset('historical_school.n.01')、Synset('lake_poets.n.01')、Synset ('pointillism.n.01'), Synset('secession.n.01')]


我有 3 个向量,目标 - 57、业务 - 223 和教育 - 97。

现在计算目标和业务之间的成对 Wu 和 Palmer 距离,除以 57x223=12711;在目标和教育之间,除以 57x97=5529。

目标到业务距离:2305.709117171037 / 5529 = 0.9125370052417936 目标到教育距离:5045.417101981877 / 12711 = 0.39693313680921066

最小距离是教育。这是一个正确的答案。

0 投票
1 回答
1070 浏览

dataset - 训练 Word2Vec 所需的最佳或最小数据量是多少?

我有一个 40 MB 大小的文本数据集,我想训练 Word2Vec 来构建一个模型,该模型可用于在特定域的文档中查找句子或段落之间的相似性。Word2Vec 获得良好结果所需的最小数据集大小应该是多少?

0 投票
2 回答
6784 浏览

python - 使用 keras 的句子相似度

我正在尝试使用 STS dataset实现基于这项工作的句子相似性架构。标签是从 0 到 1 的归一化相似度分数,因此假定它是一个回归模型。

我的问题是损失直接NaN从第一个时代开始。我究竟做错了什么?

我已经尝试更新到最新的 keras 和 theano 版本。

我的模型的代码是:

我也尝试使用简单Lambda而不是Merge图层,但结果相同。

0 投票
1 回答
74 浏览

php - 根据条目相似性组合 XML 文件

我需要使用 PHP 组合不同结构的 XML 文件。我正在做的是;

  1. 使用读取第一个 XML 文件simplexml_load_file()
  2. 使用SimpleXMLElement()类使用新结构重新格式化元素
  3. 对另一个文件执行相同操作,增加第一个SimpleXMLElement()实例
  4. 保存新组合的 XML 文件。

到目前为止,一切都很好。棘手的部分是,第一个文件大约有。3000 个条目,第二个文件有 5000 个。其中近 2000 个条目实际上是相同的;只是可能有几个字母不同。比如说;“Lenovo G50-70 CoreI5”,另一个可能是“Lenovo G5070 I5”。

问题是,如何将第一个文件的条目与第二个文件的相等条目匹配;所以实际上它恰好只是一个条目,在新的组合文件中?

我同时使用similar_text()PHP 和 SmithWatermanGotoh 的函数来计算相似度,它的得分为 86%;这对我来说已经足够了。但是迭代另一个文件的所有条目以仅匹配一个条目对我来说是非常不明智和资源消耗的。Beucase 这意味着大约。每次我保存一个新的更新文件时,都会将 7MB 的文件加载到内存中,至少进行 15.000 次迭代。

我考虑将所有条目插入数据库表并使用 Sphinx Search 来匹配条目;但我不确定它是否真的有足够的帮助。

0 投票
3 回答
686 浏览

python-3.x - 我想从 10,000 篇文章中提取包含药物和基因名称的句子

我想从 10,000 篇文章中提取包含药物和基因名称的句子。我的代码是

我想从整篇文章中提取具有基因和药物名称的句子。例如“二甲双胍降低对数转换的 SLC22A1 排泄(从 1.5860.47 到 1.0060.52,p=0.001)。” “总之,在这项控制良好的研究中,我们无法证明 SLC22A1、ACE、AGTR1 和 ADD1 的研究多态性与对二甲双胍的抗糖尿病反应之间存在显着关联。”

这段代码返回了很多句子,即如果上面的一个词进入了被打印出来的句子......!帮我为此编写代码

0 投票
1 回答
31 浏览

file - 如何将每个句子变成嵌套列表?

我正在使用一个看起来像这样的文本文件;(单词是瑞典语)

大约有500个不同长度的句子;每行描述一个词。第一个列表元素给出了单词在句子中的位置。

我需要我的程序从每个句子的条目中创建一个嵌套列表(每个句子有一个子列表)。每个新句子都从位置 '1' 开始,并用空行分隔。目前我所有的台词都在一个列表中。

我想做类似的事情:

...然后追加后面的每一行,直到它再次达到“1”,我从一个新的子列表开始。

关于如何做的一些想法?我怎么能让这个递归?