这是一个打字稿界面:
interface A {
l: { x: string; y:number }
}
Run Code Online (Sandbox Code Playgroud)
但这(类似的事情)会产生错误:
interface A {
l: { x: string, y:number }
}
// => Error: ';' expected.
Run Code Online (Sandbox Code Playgroud)
在规范的第37页:http: //www.typescriptlang.org/Content/TypeScript%20Language%20Specification.pdf
我看到确实指出a ;
应该出现在那里,但是来自JavaScript的对象 - 文字中间的分号看起来是错误的.
这个决定是为了避免解析器中的歧义,还是出于其他原因?
通过NLTK书,不清楚如何从给定的句子生成依赖树.
本书的相关部分:依赖语法的子章节给出了一个示例图,但它没有说明如何解析句子来提出这些关系 - 或者我可能缺少NLP中的一些基本内容?
编辑: 我想要类似于斯坦福解析器所做的事情:给出一句"我在睡梦中拍摄大象",它应该返回如下内容:
nsubj(shot-2, I-1)
det(elephant-4, an-3)
dobj(shot-2, elephant-4)
prep(shot-2, in-5)
poss(sleep-7, my-6)
pobj(in-5, sleep-7)
Run Code Online (Sandbox Code Playgroud) 我试图找到一个简单的(即非正式的)解释,正如乔姆斯基所阐述的4级正式语法(无限制,上下文敏感,无上下文,常规).
自从我学习正式语法以来,这已经是一个时代了,各种各样的定义现在让我难以想象.要明确的是,我不是在寻找你到处都可以找到的正式定义(例如这里和这里 - 我可以谷歌以及其他任何人),或者甚至是任何形式的正式定义.相反,我希望找到的是干净简单的解释,为了完整性而不牺牲清晰度.
grammar context-free-grammar regular-language context-sensitive-grammar
我是佛罗里达新学院的文学专业学生,目前正致力于一个过于雄心勃勃的创意项目.该项目旨在实现诗歌的算法生成.它是用Python编写的.我的Python知识和自然语言处理知识只来自于通过互联网自学.我已经使用这些东西大约一年了,所以我并非无助,但在不同的方面,我在这个项目中遇到了麻烦.目前,我正在进入最后的发展阶段,并且遇到了一些障碍.
我需要实现某种形式的语法规范化,这样输出就不会像未绑定/变形的穴居人那样出现.大约一个月前SO上的一些友好人员给了我一些关于如何通过使用ngram语言建模器解决这个问题的建议,基本上 - 但我正在寻找其他解决方案,因为看起来NLTK的NgramModeler不适合我的需要.(也提到了POS标签的可能性,但是我的文字可能太过零碎而且很奇怪,因为我的业余爱好者可以很容易地实现这一点.)
我认为需要一些像截止日期或Queequeg之类的东西,但这些都不是完全正确的.Queequeg可能不太合适 - 它是2003年为Unix编写的,我无法让它在Windows上工作(我已经尝试了一切).但我喜欢它所检查的是正确的动词共轭和数字协议.
另一方面,AtD更严格,提供的功能超出了我的需求.但我似乎无法得到它的python绑定工作.(我从AtD服务器得到502错误,我肯定很容易修复,但我的应用程序将在线,我宁愿避免依赖另一台服务器.我负担不起运行AtD服务器我自己,因为我的应用程序需要我的网站主机的"服务"数量已经威胁到导致这个应用程序廉价托管的问题.)
自己构建Ngram语言模型似乎不适合这项任务.我的应用程序抛出了许多未知的词汇,扭曲了所有的结果.(除非我使用的语料库太大而且对我的应用程序运行速度太慢 - 应用程序需要非常活泼.)
严格检查语法既不适合完成任务.语法不需要是完美的,并且句子不必比使用ngrams生成的类似英语的乱码更合理.即使它是乱七八糟的,我只需要强制动词共轭,数字协议,并做一些事情,如删除额外的文章.
事实上,我甚至不需要任何修正建议.我认为我需要的只是为了计算一组可能句子中每个句子中出现的错误数量,所以我可以按照他们的分数进行排序并选择语法问题最少的句子.
如果存在一个处理所有这些的脚本,我会高兴极了(我还没有找到).当然,我可以为我找不到的代码编写代码; 我正在寻找有关如何优化我的方法的建议.
假设我们已经列出了一些文字:
existing_text = "The old river"
现在让我们说我的剧本需要弄清楚接下来可能会出现哪些动词"承受".我对这个例程的建议持开放态度.但我主要通过步骤#2获得帮助,通过计算语法错误来评定流畅度:
['bear', 'bears', 'bearing', 'bore', 'borne']
.existing_text + " " + possibility
("老河熊","老河熊"等)产生的字符串的语法.计算每个构造的错误计数.在这种情况下,似乎唯一提出错误的建筑是"老河熊".我需要一个完整的Object Pascal语法(最好是Delphi 2009).某些语法由帮助文件提供,但并未提供所有信息.所以我开始收集松散的信息.最近我将这些添加到或多或少完整的语法描述(EBNF之类).
虽然它看起来很广泛,但仍然存在漏洞,我确信缺少部分(特别是在.NET语法中).所以我问SO Delphi社区.您有任何信息或纠正错误吗?作为回报,我为社区提供了完整的语法.它可能会节省你一些时间;-).将来,我喜欢为其他语言做同样的事情(比如C#/ C++/Java).
我已经给出了语法描述:My Syntax sofar.或者如果您喜欢Text版本.(XHTML是从文本版本生成的).
请注意,语法集中在语法部分,因为词法部分实际上不是问题.
更新
我有一个新版本的Delphi语法.HTML版本.它包括包括2009年在内的各种版本.棱镜扩展仍在待办事项清单上.而且我不确定我是否会将它们保持在一起.
对于真正的纯粹主义者,它还包含完整的汇编程序代码(它不支持完整的100%的英特尔集,但只丢失了一些指令.).
我想提出一种语言语法.我已经阅读了关于这三个的一些内容,并且无法真正看到任何人可以做的事情,而另一个人无法做到.有没有理由使用一个而不是另一个?或者只是一个偏好问题?
该标准是否指定了官方C++语法?
我搜索过,但没找到任何地方.
另外,我希望详细阅读一些关于C++语法的内容,比如它所属的语法类别等等.任何指向正确方向的链接都会有所帮助.
按类别,我的意思是
取自这里.
c++ standards grammar context-free-grammar chomsky-hierarchy
我打算用C#编写一个C#3.0编译器.我在哪里可以获得解析器生成的语法?
优选地,可以在没有修改的情况下与ANTLR v3一起使用.
通常单词列表是包含所有内容的1个文件,但是可以单独下载名词列表,动词列表,形容词列表等吗?
我特意需要英语.
我正在用ANTLR和ANTLRWorks 2创建我的第一个语法.我主要完成了语法本身(它识别用所描述的语言编写的代码并构建正确的解析树),但我还没有开始做任何事情.
令我担心的是,解析器规则中每个第一次出现的令牌都带有下划线,并带有"解析器规则中的隐式令牌定义".
例如,在此规则中,'var'
具有波形:
variableDeclaration: 'var' IDENTIFIER ('=' expression)?;
Run Code Online (Sandbox Code Playgroud)
它看起来如何:
奇怪的是,ANTLR本身似乎并不介意这些规则(在进行测试装备测试时,我在解析器生成器输出中看不到任何这些警告,只是在我的机器上安装了不正确的Java版本),所以这只是ANTLRWorks的抱怨.
是担心还是应该忽略这些警告?我应该在词法分析器规则中明确声明所有令牌吗?官方圣经"定义ANTLR参考"中的大多数exaples 似乎完全按照我编写代码的方式完成.
grammar ×10
antlr ×2
nlp ×2
nltk ×2
python ×2
syntax ×2
antlr4 ×1
antlrworks ×1
bnf ×1
c# ×1
c#-3.0 ×1
c++ ×1
delphi ×1
dictionary ×1
ebnf ×1
linguistics ×1
standards ×1
typescript ×1