Questions tagged «natural-language»

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

21
将您的英语源代码翻译成外语[关闭]
我注意到,基于英语的计算机语言数量不成比例。我建议通过将现有的计算机语言翻译成外语来解决此问题! 选择一种使用英语关键字/功能的计算机语言 选择英语以外的任何自然*语言 编写一个程序,将其自身的源代码或使用相同关键字/函数子集编写的任何其他程序翻译成其他语言 发布源代码和输出(翻译后的代码) 用以下内容开始您的帖子: 法语BASIC 要么 BASIC,法语-FONDAMENTAL 如果不想,您不必翻译语言名称,这只是为了好玩! 您不必翻译所选语言中的所有关键字/功能,只需翻译您在源代码中实际使用的关键字/功能即可。例如,PHP有成千上万,因此您绝对不需要全部翻译!另外,如果您有任何意见,也请尽力翻译!程序完成后,除非适用于外语的英语单词不应该被识别。字符串中的单词也应该翻译(这意味着翻译后的程序即使可以运行,也不再能在英语源代码上运行!)。希望您的程序对说另一种语言的程序员有某种意义! 例如,if () {} elseif () {} else {}可能会变成si () {} sinonsi () {} sinon {}法文!如果您将Perl的翻译elsif成法文,也许您会n像e用英语将第二个单词放在第二个单词一样丢弃第二个单词sinosi。在法国其他更可能是他者,但替代兴农(或者,否则)感觉更好的给我! 有创造力!尝试捕捉计算机和自然语言的感觉!没有英语标记的语言如Brainfuck,CJam等将无法使用。像BASIC或COBOL之类的语言更合适。除非您的语言不支持可以是英语单词的变量名,否则请使用有意义的变量名并进行翻译。 您可以发布多个答案,每个答案对应一种计算机/自然语言。您不得使用库或外部工具进行翻译!您的代码应自行翻译,而不要调用其他可以翻译的内容!这不是Code Golf!如果您的程序接受任何输入,则只能是其自己的源代码,如果它是从光盘中读取的,则只能是源文件,等等。 *就此挑战而言,我将世界语,洛伊班语,Volapük,Interlingua等视为自然语言。您可能没有为这项挑战发明自己的语言! 我添加了一条规则来防止显眼的提篮。您可以选择关键字/功能的任何子集(甚至全部)进行翻译。您的程序必须至少能够翻译自己,即,如果您的原始来源中包含单词,print那么print(42)在输入代码中添加任何位置(而不是您的程序本身)仍将产生正确的结果。 例如: function translate() { ... } print(translate()); 可能成为 fonction traduire() { ... } imprimer(traduire()); 如果输入更改为 print(42); function translate() { …

30
爸爸笑话很有趣
我们都知道经典的父亲笑话是这样的: 有人说了一句话来形容自己(例如I'm tired或I'm confused)。 爸爸玩笑的狂热爱好者来了并回答Hi <adjective>, I'm Dad!,因为介绍采用相同的格式(I'm Peter与相同的格式I'm hungry)。 您的工作是采用自描述词的形式输入,并输出适当的爸爸笑话形式,但是您将使用所编程语言的名称,而不是使用“ Dad”一词。在。 测试用例(假设它们正在由Python解析): I'm amazing Hi amazing, I'm Python! I'm tired Hi tired, I'm Python! I'm hungry Hi hungry, I'm Python! I'm fat Hi fat, I'm Python! 现在,假设这些测试用例是由Golfscript解析的: I'm a programmer Hi a programmer, I'm Golfscript! I'm a question-writer Hi …

4
猪会飞吗?
任务 您的任务是用您选择的语言编写函数或程序,该函数或程序分析几个语句并确定是否可以从这些语句中得出猪可以飞的结论。 输入项 输入是一个字符串,可以从STDIN读取,可以作为函数参数,甚至可以存储在文件中。可以使用以下EBNF描述输入: input = statement , {statement}; statement = (("Pigs are ", attribute) | ("Everything that is ", attribute, "is also ", attribute)), ". "; attribute = [not], ("able to fly" | singleAttribute); singleAttribute = letter, {letter}; letter = "a" | "b" | "c" | "d" | "e" …

6
说尤达(Yoda)的挑战,这是
挑战 好吧,我认为这很清楚,不是吗?您必须创建一个函数或程序,该函数或程序将字符串作为参数并输出对应的Yoda语言。 这是code-golf,因此最少的字节数获胜。 输入 输入可以是没有换行符的任何字符串。如果字符串是这样组成的,则可以翻译它: 主语 +动词+其他。 其中Subject是人称代词(我,您,他,她,它,我们,他们)。您不必认识到第二个单词是动词。 如果第一个单词不是代词,则输入有效,但输出为 Too difficult, this sentence is. You have to win this code challenge -> Translatable Luke has to win this code challenge -> Untranslatable 输入可以以字母a结束。或!,而不是?。 此外,字符串可以包含Non-Ascii,括号,逗号,冒号... 输出 对于可翻译的句子,输出是相同的句子,主语和动词位于句子的末尾。 You have to win this code challenge -> To win this code challenge, you …

30
StringgnirtSStringgnirtSStringgnirtS
这对您来说是一个相对简单的挑战。 给定长度为N的字符串,向前输出该字符串,然后向后输出,然后向前,然后向后输出……等等。N次。例如,如果您输入的是 Hello! 您应该输出: Hello!!olleHHello!!olleHHello!!olleH 您也可以选择输出一个尾随换行符。 您的提交可以是完整程序,也可以是函数,并且您可以采用任何合理的格式进行输入和输出。例如,您可以从STDIN / STDOUT中获取IO,从函数中获取参数,并从文件中获取返回值,等等。您可以放心地假设输入字符串将不会为空,并且仅包含可打印的ASCII。您必须在一行上输出新字符串。因此,例如,如果最后一个示例的输出是 Hello! !olleH Hello! !olleH Hello! !olleH 这不是有效的解决方案! 这里是更多测试用例: Input: a Output: a Input: abcd Output: abcddcbaabcddcba Input: OK! Output: OK!!KOOK! Input: 4815162342 Output: 4815162342243261518448151623422432615184481516234224326151844815162342243261518448151623422432615184 Input: PPCG Output: PPCGGCPPPPCGGCPP Input: 42 Output: 4224 排行榜 由于这是一个代码高尔夫挑战,因此禁止了标准漏洞,以字节为单位的最短答案胜出!但是,这也是在任何特定语言中答案最短的竞赛。尽管Java答案不太可能会击败perl或某些打高尔夫球语言的答案,但拥有最短的Java答案仍然令人印象深刻。因此,您可以使用此页首横幅查看 所有语言中最短的答案,以及 每种语言的最短答案。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N …
42 code-golf  string  code-golf  math  geometry  data-structures  repeated-transformation  code-golf  number  random  code-golf  math  rational-numbers  code-golf  ascii-art  animation  code-golf  ascii-art  number  code-golf  math  number  code-golf  data-structures  code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

30
天哪,吉萨高尔夫!
“吉萨数”(俗称“ 蒂米数”)是指数字代表金字塔的任何数字(A134810)。例如,“ 12321”是一个吉萨数字,因为它可以像这样可视化: 3 2 2 1 1 但是,“ 123321”之类的字符不是吉萨币,因为金字塔的顶部有两位数字 33 2 2 1 1 换句话说,如果满足以下所有条件,则数字为吉萨数: 它的位数是奇数,中间的数字是最大的 它是回文的(相同的向前或向后读取),并且 数字的前半部分严格增加一个。(由于必须是回文,这意味着数字的后半部分必须严格减少一位) 您必须编写一个采用正整数作为输入的完整程序或函数,并确定它是否为吉萨数。您可以将输入作为字符串或数字。如果它是吉萨数,则输出真实值。否则,将产生虚假的值。 共有45个吉萨数字,因此这些输入中的任何一个都应产生真实值: 1 2 3 4 5 6 7 8 9 121 232 343 454 565 676 787 898 12321 23432 34543 45654 56765 67876 78987 1234321 2345432 3456543 4567654 5678765 …

15
用单词数到20!
使用以下以长度分隔的单词列表: https://github.com/魔术八爪鱼缸/ wordListsByLength 从每个列表中打印1个单词,长度n 从1一直到20,这是一个有效的示例: a an and hand hands handle handles abandons abandoned understand outstanding newfoundland understanding characteristic characteristics characterization characterizations characteristically characterologically chemotherapeutically 或者(数组): ['a', 'an', 'and', 'hand', 'hands', 'handle', 'handles', 'abandons', 'abandoned', 'understand', 'outstanding', 'newfoundland', 'understanding', 'characteristic', 'characteristics', 'characterization', 'characterizations', 'characteristically', 'characterologically', 'chemotherapeutically'] 或者(除以外的任何可打印的非字母分隔符\n): a:an:and:hand:hands:handle:handles:abandons:abandoned:understand:outstanding:newfoundland:understanding:characteristic:characteristics:characterization:characterizations:characteristically:characterologically:chemotherapeutically 规则 您可以选择自己的20个字。 …

26
制作平方字
挑战 您的任务是创建一个程序,该程序接受任何给定的字符串输入,并以平方格式输出输入。空字符串应返回一个空字符串。 例子 给定输入: golf 您的程序应输出: golf o l l o flog 输入: 123 输出: 123 2 2 321 输入: a 输出: a 输入: Hello, world! 输出(注意,和之间的空格-间隙不只是换行符): Hello, world! e d l l l r o o , w w , o o r l l l d e !dlrow …

4
宝贝,你是古罗马作家
日语的罗马化将日语文本转换为拉丁字符。在此挑战中,将为您提供一串日文字符作为输入,并期望将其转换为正确的ASCII字符串。 您需要知道什么 日语有三种书写系统:平假名(弯曲的用于简短单词),片假名(用于从其他语言借来的声音和单词的角形)和汉字(最初来自中文的密集字符)。在这个挑战中,我们将只担心平假名。 平假名音节中有46个字符。每个字符代表一个音节。字符按第一声音(辅音)和第二声音(元音)组织。按顺序排列的列是aiueo。 : あいうえお k: かきくけこ s: さしすせそ t: たちつてと n: なにぬねの h: はひふへほ m: まみむめも y: や ゆ よ r: らりるれろ w: わ を N: ん (如果复制并粘贴此表,请注意,我已使用表意空格U + 3000来分隔y和w) 因此,例如あとめ应该产生的输出atome。第一个是a,第二个是to,第三个是me。 例外情况 像任何一种好的语言一样,日语也有其规则的例外,而平假名表也有几种例外。这些字符的发音与其在表中的位置所暗示的略有不同: し:shi,not si ち:chi,not ti つ:tsu,not tu ふ:fu,nothu 达库ten “ dakuten”一词的意思是“泥泞的印记”:dakuten将声音转换成它们的浊音(通常);例如,かka变成か゛ga。更改的完整列表: k→交通g s→交通z t→交通d h→交通b 例外也会发生变化:し゛:(ji或zhi),不是zi …

1
猜猜德语单词如何发音
介绍 与英语不同,德语被认为具有相当的音素书写系统。这意味着拼写和发音之间的对应关系很紧密。给定您不熟悉的任何单词,由于拼写系统,您仍然会知道如何发音。这意味着计算机应该能够正确执行此操作吗? 挑战 编写一个程序或函数,将代表德语单词的字符串作为输入,并以国际语音字母(IPA)打印或返回其发音。 我当然不会让您学习德语或完整的IPA。这个Wikipedia部分提供了您所需的几乎所有的德语到IPA规则,并且我已经编写了一个非高尔夫C#参考实现。 在该链接还提供了一个名单的400个共同德语单词和他们的IPA发音(需要验证)。以该列表为例,如果输入为solltest,则正确的输出为ˈzɔltəst。 参考实现添加了两个在Wikipedia部分中未提及的有用规则:假定单词重音位于第一个音节上(很有可能在德语中),并使用更好的试探法来确定字母“ e”何时表示schwa声音/ə/。它还对前缀执行特殊处理,但是并没有像我想的那样改善结果。 细节 要被视为有效条目,您的程序必须满足以下要求: 您的IPA输出必须与参考单词列表中的400个单词中的至少300个完全匹配(参考实现正确获得333个) 您的程序必须猜测任何可能是德语的单词。因此,我们有一项技术要求,这意味着对于任何与正则表达式匹配[a-zA-ZäÄöÖüÜ][a-zäöüß]*且具有至少一个元音(aeiouyäöü)的输入,您必须产生非空白输出,并且不能出错。 程序必须是确定性的(在给定相同输入的情况下始终产生相同的输出) 否则,将禁止出现标准漏洞(尤其是关于获取异地资源的漏洞) 您可以做其他杂项: 如果您必须在输出中包含前导和尾随空格 在输出中使用任何先前存在的字符编码(我想不到除了Unicode可以正常工作以外的任何方法,但是如果可以的话,恭喜) 假设输入采用某种规范化形式,例如Unicode规范化形式NFD,NFC等。例如,ä是写为单个字符还是基本字符+组合字符? 使用标准输入和输出方法 评分和IPA字符 得分以字节为单位。请注意,德语字符和IPA字符均为UTF-8中的2个字节。同样,IPA字符U + 0327下方的反向组合键(̯)是Unicode组合字符,它本身就是2字节的UTF-8字符。这意味着类似ɐ̯的东西在UTF-8中算作4个字节。对于好奇的人,此符号表示元音不构成音节核(上一个则不然)。 另外,请注意这些IPA字符在某些字体中看起来像其他ASCII字符:ɡ,ɪ,ʏ,ː(标记为长元音),ˈ(音节在多音节单词中带有重音的标记)。 参考单词列表的创建方式 本部分是挑战所不需要的额外信息。 该单词列表是从该维基词典单词频率列表中获取的,由于大小写不同以及两个单词在英语维基词典中没有德语条目而删除了重复单词(哦和嘿)。IPA来自英国和德国的维基词典。在提供多种发音的地方,我选择了较为正式和标准的发音。如果不清楚,我选择最适合一般规则的规则。 我还必须标准化字母“ r”的发音方式。这封信的发音很大程度上取决于该地区,而维基词典在所选择的那封信上根本不一致。我觉得它趋向于以下:“ r”的发音是/ɐ̯/,后面是长元音,而后面没有元音,否则是ʁ。因此,我更改了所有它们以遵循该规则,除了/(f)ɛɐ̯/非常一致的ver-和er-前缀。同样,我将“ eu”标准化为/ɔʏ̯/。

15
威尔士语单词多长时间?
编写一个程序或函数,该程序或函数接收代表威尔士语单词的字符串(UTF-8,除非您另行指定)作为输入。 以下是威尔士语中的所有单个字母: a,b,c,ch,d,dd,e,f,ff,g,ng,h,i,j,l,ll,m,n,o,p,ph,r,rh,s,t, ,, u,w 要引用维基百科, 虽然有向图ch,dd,ff,ng,ll,ph,rh,th用两个符号书写,但它们都被视为单个字母。例如,这意味着Llanelli(位于南威尔士的一个小镇)在威尔士语中被认为只有六个字母,而英语中只有八个字母。 这些字母也存在于威尔士语中,尽管它们仅限于从其他语言借来的技术词汇: k,q,v,x,z 带有变音符号的字母不会被视为单独的字母,但是您的功能必须接受它们并能够对其进行计数。可能的字母是: â,ê,î,ô,ô,û,ŷ,ŷ,á,é,í,ó,ú,ý,ẃ,ä,ë,ï,ö,ü,ü,ÿ,ẅ,à,è,ì, ù,ẁ (这意味着ASCII是不能接受的输入编码,因为它无法编码这些字符。) 笔记: 这是代码高尔夫。 您不必考虑像llongyfarch这样的单词,其中ng不是字母,而是两个单独的字母。这个单词有9个字母,但是您可以将其误认为8个字母。(如果您能解释这样的话,那真是太棒了,但超出了此挑战的范围。) 确保输入没有空格(除非您喜欢使用单个结尾的换行符(或更深奥的东西),在这种情况下可以提供)。当然不会有内部空格。 测试用例: 兰迪德诺,8 拉内利,6岁 瑞尔3 Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch,(50岁,但我们算50) Tŷr,3 西摩(Cymru),5岁 格林多7岁

18
丹麦文数到100
使用丹麦的计数方法,以正确的顺序打印0-100之间的所有数字 他们如何计数 像英语一样,他们有专用的0-20、30、40和100单词 他们没有说twenty-one和twenty-two,而是说one and twenty和two and twenty 从50开始,他们说10的倍数为n * 20 50 = half third times twenty = half way to the 3rd multiple of 20 60 = three times twenty 70 = half fourth times twenty 80 = four times twenty 90 = half fifth times twenty 因此,例如55将为five and …

18
自动进行一年级的计数练习
CodeGolf挑战 PWSSHHHH!您在3000年的一个低温实验室中醒来。在押送至任务分配办公室以接收您的职业筹码(大概是送货员的职业筹码)后,探针会检测到您来自2000年。刻板印象,与当今的现代人相比,你被认为是愚蠢的,被迫重读小学。 您进入一年级教室,老师正在做作业。她会说或写一个不超过50的数字。如果她在黑板上写下该数字(例如:25),那么您必须说不超过该数字的数字“ 1、2、3,...,25 ”。如果她大声说出数字(例如:“六个”),则必须在平板电脑上将数字写成最大为“ 1、2、3、4、5、6” 这变得非常乏味,您决定使用仍在运行的21世纪原始编程知识来自动化该过程。 目的: 您的程序应该接受输入。该输入将是十进制数字(1 thru 50)或写出数字(one thru fifty)。 •如果输入为十进制数字,则您的输出应使用写出样式从一到该数字进行计数。(例如32个) •如果输入是写出的数字,则您的输出应使用小数形式从1计数到该数字。(例如32) 规则: 输入和输出可以在您选择的任何情况下使用(因此,如果需要,您可以制作一个仅接受大写字母的程序)。 输入的十进制数字不必是数字类型(例如int),它们可以是包含数字的输入字符串(25对“ 25”)。两种都很好,您可以选择要让程序接受的一种。(您的程序无需同时接受两者) 书面样式不需要复合词之间的连字符,但是如果需要,可以。 输出值必须以某种形式分隔,任何分隔符都可以 1,2,3 1 2 3 etc 您不能添加额外的库,例如num2words(python)等(但是系统库也可以) 即使背景故事说您来自2000年,您也可以使用在该日期之后创建的语言(lol) 这是代码高尔夫球,因此字节数最短的程序将获胜!

10
告诉我我必须做多少数学问题!
我的老师总是给我做作业中最复杂的数学问题。像:pg. 546: 17-19, 22, 26, pg. 548: 35-67 odd, 79, 80-86 even。我想提前知道有多少时间留给我的家庭作业,但我不想弄清楚所有这些。这就是为什么要为我编程的任务。 技术指标 您将得到一个字符串,详细说明我必须以args,stdio等形式完成的问题。 它们将以逗号分隔(可能comma-space分隔) 它将仅以数字形式包含单个问题(例如79) 和形式的范围17-18(同样,您必须处理可选空格) 范围包括两端 该范围可以选择加odd或后缀even,您必须考虑这些范围。 一组范围/页面将以格式的页码开头pg. 545:,再次必须处理可选的空格。您可以放心地忽略这些,因为您需要在所有页面上都解决问题 文本可以大写或小写,但不能同时使用。 Return,stdout等我必须做的家庭作业的数量。 由于这是代码高尔夫球,因此以字节为单位的最短代码将获胜! 测试用例 pg. 546: 17-19, 22, 26, pg. 548: 35-67 odd, 79, 80-86 even -> 27 pg. 34: 1 -> 1 PG. 565: 2-5,PG.345:7 -> 5 pg. …

22
引爆一根弦
给定任何字符串,以三角形的形式打印它,其中文本沿每个对角线上下移动。例如,输入的"Hello World"应输出: d l r d o l W r d o l o W r d l o l l o W r d e l o l H l o W r d e l o l l o W r d l o l o W r …

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.