Questions tagged «natural-language»

涉及以人为方式处理自然语言的问题。任务包括解释自由文本,更正拼写或语法,理解发音等。

30
最常用的词是什么?
最常用的词是什么? 给定一个句子,您的程序必须遍历整个句子,计算每个单词的出现频率,然后输出最常用的单词。由于句子没有固定的长度,因此可能会很长,因此您的代码必须尽可能短。 规则/要求 每个提交应该是完整的程序或功能。如果它是一个函数,则只需将函数调用添加到程序底部即可使其可运行。其他任何内容(例如C中的标头)都必须包括在内。 您的语言必须有免费的口译/编译器。 如果可能,请提供指向可以测试您的程序的站点的链接。 您的程序不得向写入任何内容STDERR。 您的程序应从STDIN(或使用您语言中最接近的替代语言)输入。 禁止出现标准漏洞。 你的程序必须是不区分大小写(tHe,The和the所有有助于计数the)。 如果没有最常见的单词(请参见测试案例3),则您的程序应不输出任何内容。 “单词”的定义: 您可以通过在空格处分割输入文本来获得单词列表。输入将永远不包含任何其他类型的空格,而不是普通空格(特别是没有换行符)。但是,最后的单词应仅包含字母数字(az,AZ,0-9),连字符(-)和撇号(')。您可以通过在拆分单词之前删除所有其他字符或将它们替换为空格来实现此目的。为了保持与规则的先前版本兼容,不需要包括撇号。 测试用例 The man walked down the road. ==> the ----- Slowly, he ate the pie, savoring each delicious bite. He felt like he was truly happy. ==> he ----- This sentence has no most frequent word. ==> …

4
打我一个OOP!
打我一个OOP! 面向对象编程的两个重要组成部分是继承和组合。它们一起允许创建简单而强大的类层次结构来解决问题。您的任务是解析有关类层次结构的一系列语句,并回答有关层次结构的问题。 输入项 从文件或标准输入中读取关于类层次结构的一系列语句和问题,以最适合您的语言的情况为准。如果使用file选项,文件名将作为第一个参数传递给代码(函数参数或命令行参数,无论您选择哪个)。格式如下: <statement> : <name> is a <name>. | <name> has a <name>. <question> : Is <name> a <name>? | Does <name> have a <name>? <name> : a-z | A-Z | sequence of alphanumerics or underscores, starting with a letter 输入将始终是语句,然后是问题。所有班级名称A-Z均以大写英文字母()开头,所有成员名称均以小写英文字母(a-z)开头。所有名称均区分大小写- ABC123与的类不同Abc123。 不会有任何周期性继承-如果B继承自A,A不会继承B或任何B的子代。 只有类名将成为层次结构的一部分-诸如foo is a bar.或document has …

12
为俄语写一个复数函数
在英语中,名词可以采用两种不同的形式,具体取决于它们是单数(一个)还是复数(其他)。例如,我们说“ 1条狗”,但说“ 2条狗”,“ 0条狗”,“ 57条狗”等等。 在俄语中,分为三类。代替俄语中的“ 1条狗,2条狗,5条狗”,它是“ 1собака,2собаки,5собак”。 类别根据以下逻辑进行划分: “单数”:用于1和以1结尾的任何数字,但以11结尾的数字除外。 示例:1собака,21собака,101собака “很少”:用于2、3和4,以及以2、3或4结尾的任何数字,但以12、13和14结尾的数字除外。 例如:2собаки,3собаки,4собаки,32собаки,43собаки,104собаки “许多”:任何不视为“奇异”或“很少”的东西。 例如:0собак,5собак,11собак,13собак,25собак,111собак,114собак 挑战 给定范围为[0,1000]的整数输入,1如果它属于“单数”类别,2如果它属于“很少”类别,并且5如果它属于“许多”类别,则返回。 您的程序可能是一个函数,也可以使用STDIN。您可以打印到STDOUT或从函数返回值 这是一个代码高尔夫挑战,因此以最少的字节数赢得解决方案。

4
不是不是!…还是?
介绍 实话实在很难理解,尤其是对于不熟悉实话的程序员。 创建口译员来帮助我们所有人在城市环境中生存是您的工作。 挑战 给定一个英语句子作为输入,创建一个程序或函数来确定句子的结果是肯定的还是否定的。 这句话包含0到2否定词。众所周知,双重否定会导致积极。因此,您的代码必须根据以下规则输出或返回true / falsey值: No negative words -> truthy One negative word -> falsey Two negative words -> truthy 否定词列表: no,not,none 以结尾的任何东西 n't never,neither,nor nobody,nothing,nowhere 有一种情况。每当句子以开头时No,,在确定结果时该词都不会被视为否定词(它确实计入否定词的数量,因此可以再增加一个)。 该句子将遵循基本的语法规则(大写,标点符号),并且仅包含可以从词典中找到的单词(幸运的是,这不会使问题标题无效)。该句子将不包含任何专有名词(对不起,博士,您不在了)。 测试用例 真相: Yes. It's noon. Hello, World! What is this? Ain't no thang! Never say never. No, it's noon …

18
发音排序™
我们都知道不同的花式排序算法,但是这些算法都没有以易于发音的方式为我们提供数字。为了解决这个问题,我建议使用VoiceSort™,这是对数字列表进行排序的最自然的方法。 发音 发出数字的正式规则(在此挑战中)是数字被一个一个地发音,并且结果字符串按字典顺序排序。例如,这意味着该数字845是发音的"eight four five",应进行相应的排序。 负数 负数是通过在单词前面加上字母来发音的"minus"。因此,-23发音为"minus two three"。请注意,这会导致负数最终出现在输出的中间,正好在以4(4)和9(9)开头的数字之间。 作为指导,ForeignSort™的正式词序为: 八 五 四 减去 九 一 七 六 三 二 零 那是, 8, 5, 4, -, 9, 1, 7, 6, 3, 2, 0 输入项 范围为的整数列表,最多包含100个元素。不允许输入为字符串列表。如果您的语言不支持输入为列表,则可以将输入作为单独的整数输入。[ - 999 ,999 ][-999,999][-999, 999] 输入将不包含任何无效数字或任何以0开头的数字(数字本身除外)。输入通常不会排序,可以按任何顺序给出。 输出量 相同的整数,以VoiceSort™顺序排列。请注意,仅应将数字转换为其发音以进行排序,输出不应包含任何字符串。 例子 对于示例,中间步骤(用括号括起来)仅用作指导,而不是输出的一部分。 [1, 2, 3] -> (['one', …

5
代词操作
挑战 编写一个函数或程序,该函数或程序使用由一个或多个主观人称代词(用+号分隔)组成的字符串作为参数。输出必须是单个代词,这是下一段中定义的关系的结果。 当然,您可以随时进行编辑,以纠正确实存在的语法错误;) 这是一个代码挑战,因此以最短的代码为准。 关系 这项任务的目标是将我们日常使用的内容翻译成“讲数学”。我们如何看待“你和我”?好吧,“我们”,不是吗?因此,如果输入为You+I输出,则应为string We。具有两个以上的代词,它应类似于: You+He+They->You 该关系定义为此表: I You He We You They I I We We We We We You You You We You You He He We You They We We We We You You You They They “你”的问题 好吧,如您所见,我不是英语母语人士。在我的语言(意大利语)中,您的复数形式(voi,意大利语)和单数形式的您(tu)有所区别。当我想到这个挑战时,我没有用英语思考,因此存在一个问题,即我是使用复数形式还是单数形式,这是无法识别的。幸运的是(或者很明显?),输入/输出在两种形式中都没有改变,因此您可以使用其中一种,并且您将涵盖两种情况! 关于输入 输入将始终为“代词+代词+代词”形式。代词的首字母大写,其余字母小写。加号不会被空格包围,只会被代词包围。空输入是可能的,结果必须是空输出。 奖金 如果该程序可以管理两个新代词:She和It,则可获得15%的小额奖励。很明显,它们与祂相同。请记住,这种关系是自反的,所以她->她和它->它。因此,仅包含她,他或它的任何组合都应输出它们。 例子 You+I …

9
打印所有3 x 3坚固的正方形
坚固的正方形(类似于魔术正方形)是整数1到N 2在N by N网格上的排列,以使每2 by 2子网格具有相同的总和。 例如,对于N = 3,一个坚固的正方形是 1 5 3 9 8 7 4 2 6 因为四个2 x 2子网格 1 5 9 8 5 3 8 7 9 8 4 2 8 7 2 6 全部加起来等于23, 23 = 1 + 5 + 9 + 8 = 5 + …
24 code-golf  number  arithmetic  number-theory  grid  code-golf  binary  code-golf  popularity-contest  code-golf  chemistry  code-golf  code-golf  date  code-golf  quine  chess  code-golf  hexadecimal  code-golf  number  arithmetic  sequence  array-manipulation  code-golf  math  date  code-golf  typography  code-golf  string  code-golf  string  code-golf  code-golf  math  arithmetic  array-manipulation  grid  code-golf  puzzle-solver  code-golf  music  audio  code-golf  decision-problem  code-golf  geometry  code-golf  number  bitwise  code-golf  string  metagolf  hexagonal-grid  code-golf  string  code-golf  sorting  popularity-contest  code-golf  game  sequence  base-conversion  binary  code-golf  decision-problem  graph-theory  natural-language  code-golf  math  parsing  optimized-output  code-golf  array-manipulation  code-golf  graphical-output  image-processing  tiling  code-golf  graph-theory  path-finding  chess  code-golf  code-golf  balanced-string  code-golf  number  code-golf  sequence  code-golf  math  arithmetic  statistics  code-golf  chemistry 

5
升到英语翻译
您面临的挑战是编写一个程序,将leetspeak / lolspeak / txtspk(英语)翻译成正常的英语。您的程序应从标准输入和输出读取为标准输出,除非您的语言不支持这些。 您可以使用包含英语单词列表的文件,并用新行分隔。它应该被调用W,并将与您的程序位于同一目录中。(在GNU / Linux系统以及可能的其他系统上,您可以W链接到/usr/share/dict/words)列表不必全为小写,您可以使用它来确定单词是否应使用大写。 这是基于Nikos M.现在删除的问题,可以在此处找到。这不是重复的,因为此原始问题已关闭且未收到任何答案,因为没有获胜标准,并且用户不愿意输入。 计分 计分有点复杂! 你的分数是 (leet items + bonuses) * 10 / (code length) 最高分获胜。 您的程序不一定是完美的,也可能不是完美的,但是它越精确,它所获得的奖金就越多! 既然$可以同时表示s和S,则每个leet项目决定是否应使用大写字母(即句子开头的大写字母)可获得5分的奖励。 如果实现专有名词(始终带有大写字母的单词),则每个leet项目还将获得5分的额外奖励-这种方法的工作方式是,您可以浏览单词列表,并且如果单词中只有大写形式,则将输出大写。列表,如果两个版本都在那儿,那就猜吧。 如果一个字符具有两种含义(例如,1可以表示意思L或I),则每个leet项目仅获得那些构成真正英语单词的翻译,即可获得20分。为此,请使用单词表。如果一个leet物品的多个翻译成一个真实的英语单词,您可以任意选择其中一种有效的翻译,但仍然可以获得奖励。 升力清单 这些是您可以实现的重要项目。您不必全部实现它们,但是添加的越多,获得的积分就越多。 您无法通过将项目或角色翻译成自身来获得分数。该规则将覆盖我在列表中可能犯的任何错误。 做一个简单的tr或诱人s/.../.../g。真正的挑战是使用单词表确定多种含义中的哪种正确与否。 升项(每个项leet items在公式中加1) $-> s,S (-> c,C 5-> s,S @-> a,A 4-> a,A 3-> e,E 7-> t,T +-> t,T #-> …

9
是名词吗?
给定一个字符串作为输入,请确定它是否为名词。 您会在1000个最常用的英语单词中获得打分,具体取决于是否正确将其标记为名词。 正确地将大多数单词(不超过50个字节)分类的程序或函数将获胜。 名词 名词是通常代表事物的单词。它变得更加复杂,但这是基本思想。 在一个单词可能是名词或其他词性的情况下,我将其归类为名词,即使这种用法很少见。或实际上,我让这个网站替我做。 您将获得评分的单词是这1000个常见单词,它们来自简单的Wikipedia,其中添加了“两个”和“一次”。其中,有586个名词,有414个非名词。您可以在此处找到所有三个列表。请注意,所有这些输入均为小写。这些清单是最终清单-请勿尝试争论语法。 如果您的程序输出真实信息,则将其视为正确在作为名词的输入中结果,而在非名词的输入中结果,。 细微之处: 程序必须具有确定性的输出。如果您想使用随机性,则将其作为种子。程序不得使用内置名词列表或其他内置词性功能。 例子: a: noun act: noun active: noun about: non-noun above: non-noun across: non-noun 请在回答中指出程序的成功率。以成功率最高的最多50个字节的程序或功能为准。如果出现平局,则最低字节数将确定获胜者。祝好运!

5
还剩多久?
还剩多久? 最近,我在手机上使用5分钟计时器制作披萨。当有人走进来问我还剩多久时,我一开始就如何回答这个问题感到困惑。您会发现,如果当前时间的计时器是3:47,那么当我大声读出“三分四十七秒”时,时间就会变了。因此,我需要找到一个计时器,正好在我将其读出后才能到达。 这是您的挑战:自动化此过程。给定时间以任何合适的格式(用“:”定界,或者作为分秒和第二个参数),输出从当前时刻开始的最早时间,这将花费与读取计时器相同的时间量至。我们假设每个音节需要1秒钟才能读出。 进一步规定 您必须将“分钟”和“秒”分别算作两个音节,以及它们之间的“与”。 披萨的烹饪时间不会超过59:59。 “ 11分零秒”不是10个音节:您必须简化为“ 11分钟”(即5个音节)。分钟也是如此:“ 0分钟7秒”也仅算作4个音节。 您的程序可以以任何格式提供输出:的数组[minutes, seconds],甚至是<minutes> minutes and <seconds> seconds(写出普通文本)。 有标准漏洞。 这是代码高尔夫球,因此最短答案以字节为单位。 测试用例 所有输入为 (minutes, seconds) (4, 47) = (4, 38) (Four MiNutes And ThirTy Eight SeConds - 9 syllables/seconds) (1, 1) = (0, 56) (FifTy-Six SeConds - 5 syllables/seconds) (59, 57) = (59, …

25
解析我的世界语!
世界著名的构造语言世界语使用拉丁字母(有关详细信息,请参见链接的维基百科页面)。但是,有些字符带有重音:characters,ĉ,ĥ,ĵ,ŝ和ŭ。(C抑扬音,g抑扬音,h抑扬音,j抑扬音,s抑扬音和超音。)自然地,这些字符很难键入。即使是这个问题,我也必须在Unicode选择器中搜索字符。因此,已经开发了使用字母“ x”的约定以用于电子用途。例如,“ cxu”用于“ĉu”。(注意:世界语字母通常不使用字母“ x”。” 但是,我是一个语言纯粹主义者!这个“空中报价” *胡说八道杀了我!我需要一个程序来解决此问题,最好尽可能短,以便可以尽快将其输入到我的终端中! 挑战 您的任务是使用x约定获取一串世界语,并将其转换为真实的世界语。 实际上,您必须映射: cx: ĉ gx: ĝ hx: ĥ jx: ĵ sx: ŝ ux: ŭ Cx: Ĉ Gx: Ĝ Hx: Ĥ Jx: Ĵ Sx: Ŝ Ux: Ŭ 所有其他可打印的ASCII字符都应被接受并且不能更改。Unicode会很好,但不是必需的。 输入和输出可以采用适合您的语言的任何格式。祝好运! 测试用例 "input" : "output" _____________ "gxi estas varma" : "ĝi estas varma" "Cxu sxi sxatas …

7
我编程拼图,il代码高尔夫
背景 意大利定冠词(相当于英语的)有七个不同的形式:L”,IL,卤味,GLI,我,拉,乐。使用哪一个取决于三个变量: 性别:男性/女性。 数字:单数/复数。 后继单词的首字母:元音/ A型辅音/ B型辅音。 元音是以下任何一种:aeiou。 辅音类型B是任何这些情况中:S-后跟另一个辅音,Z-,GN- ,pn结,PS-,x轴,异接着元音(此我充当半元音)。 类型A的辅音不是类型B的辅音。 下表显示了上述三个变量的十二种组合中的每种将使用的商品形式。请注意,l'形式附加在后面的单词上,并带有单引号和空格。 挑战 输入一个单词和一个或两个表示性别和数字的字符串,数字或布尔值。(必须从输入的单词中获取首字母)。 输入的单词将是一个小写的ASCII字母序列。重音元音将被其非重音版本代替(例如,realtà将作为realta输入)。 性别和数字输入可以是单独的数字,布尔值或字符串,也可以是字符串的组合数(例如,男性单数为1,女性单数为2,等等)。 只要在答案中指定,任何合理的格式和分隔符都可以使用。 输出单词,并冠以相应的文章形式,并根据需要添加空格或单引号。输出也应该是小写。允许尾随空格或前导空格。 打高尔夫,最短的胜利。 测试用例 在我使用的输入字母下面m,f指定性别和s,p对数(这只是一个可能的输入格式)。 Input Output Comment macchina f s la macchina Initial letter is cons. A zio m s lo zio Initial letter is cons. B libri m p i libri Initial …

15
输出下一个假名
日语假名字符对应于日语中的单个声音。除ん(n)外,其他所有假名都由辅音部分和元音部分组成。日语假名有一种自然的排序,一种“字母顺序”,通常按10 x 5的表排列: | a i u e o ----------------------------- * | a i u e o k | ka ki ku ke ko s | sa si su se so t | ta ti tu te to n | na ni nu ne no h | ha hi hu …

4
用法语讲时间
卓悦,PPCG!Quelle heure est-il?这意味着法语现在几点了,因为这恰恰是这一挑战所要解决的。 用法语(至少是正式时间)讲时间与用英语讲时间有点不同。告诉时间从Il est(It)开始。然后,您在小时数后面加上小时数(时)。(如果您不知道法语数字,请使用以下列表:http : //blogs.transparent.com/french/french-numbers-learn-how-to-count-from-1-to-1000/)。如果是1点钟,请谨慎处理。中午时分,使用midi(不加尿),午夜时使用minuit。 除非分钟为00,否则您将以分钟为单位。但是,有一些例外。15分钟内您要说et夸脱,30分钟内您要说et demi。对于30分钟后的任何内容,您可以将小时数增加1,然后加上单词moins和60-分钟。因此,下午9:40是9月下午的生命(生命 = 20)。45分钟将是夸脱。 最后,以一天中的时间结束它。对于早上(上午1点至下午12点),您说du matin。对于下午(主观,但我将其定义为下午1点至下午5点),您说的是de l'apres-midi(从技术上讲,应在e上方加上一个重音符号,但是eh)。在晚上(下午5点至中午12点),您说du soir。请注意,在午夜和中午(小腿和midi)之后,您不要放任何这些-根据您使用的时间暗示一天中的时间。 您可能已经确定,这里的挑战是使用这些规则以法语打印当前当地时间。这是在各个时间样本输出的样子。(括号中的时间不必明显地打印出来,它只是在那里,所以您知道现在几点了): Il est sept heures du matin. (7:00 A.M) Il est deux heures de l'apres-midi. (2:00 P.M) Il est une heure du matin. (1:00 A.M) Il est huit heures du soir. (8:00 P.M) Il est …

3
区分法语中的男性名词和女性名词(不超过100个字符)
您要编写一个不超过100个字符的小程序。您的程序必须区分男性和女性法语名词。输出应该un是男性的une还是女性的。通常,您可以遵循某些统计规则(例如,如果以“ e”结尾,则女性化的可能性要大于男性)。 输入: 法语单词;它可以包含任何小写字母和破折号,包括带重音符号的小写字母。 输入示例: ami 输出: un如果这个词是男性的,une如果这个词是女性的。 输出示例: un 您不必每个单词都正确;您的目标是尽可能准确。 评分:您的答案必须在100个字符以内。语句如print或console.log或alert根本不指望作为你的总字节数的一部分。您也可以编写执行此任务的函数或方法,在这种情况下,f=x=>属于函数声明的前几个字节(例如)不会计入总数。您的总分数是不正确答案的数量。领带因代码大小而中断。 要测试的名词: un ami un café un chapeau un concert un crayon un garage un garçon un lit un livre un mari un musée un oncle un ordinateur un pantalon un piano un pique-nique un portable un père un …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.