|
|
1
2
一般情况下,情况并非如此。 大多数自动转换器使用的简单算法只是查看在“或”之前键入的前一个字母。如果是空格、行首、左括号或其他左引号,请选择左引号,否则选择右引号。这个方法的优点是它可以按您的类型运行,所以当它选择了错误的方法时,您通常可以纠正它。
我同意!但很少有人这样做。将撇号转换为左引号是正常的排字习惯。就我个人而言,我更喜欢保持原样,将它们与随附的引号区分开来,使文本更容易阅读(我找到),并且可以自动处理。 然而,这真的只是我的口味,一般认为这是不合理的,仅仅是因为该字符是由Unicode标准定义为单引号。
的确。在经典的鱼片“n”这样缺少大量文化背景的案例中,无法从潜在的公开引用中辨别撇号。 (更不用说素数、冲绳、发音停止和撇号的各种其他用法…) 当然,最好的办法是安装一个键盘布局,可以直接输入智能引号。我在altgr+[]上有___,在altgr+shift+[]上有___,在altgr+[shift]+破折号上有___,等等。 |
|
|
2
3
最好从状态机开始:
您可以在每个状态转换时做出其他决定。 例如,您可以尝试通过识别已知的连词来规范化单引号,并在处理之前将它们转换为不同的(而不是文本)字符。 我的0.02美元 |
|
|
3
2
看起来你最初的帖子涵盖了我在这里写的大部分想法,这就是我剩下的…… 对于撇号示例(“我喜欢‘70年代的节目’”,她说),引号不太可能直接嵌套在同一类型的引号中。你可以利用这个机会。 在我看来,最好的方法是让代码只处理明确的情况(双引号非常简单)。对于有多个可能选择的人,将他们的位置存储在一个列表中,并在完成后检查它。您可能会在其中找到一些更容易编码的案例,或者您可能只是决定手动修复它们。 |
|
|
4
1
另一个可能不那么复杂的想法可能是:
最后一个想法: 你应该像只处理段落那样把过程分开。如果你的程序出错了,这可能会给语言带来复杂性,你更容易纠正它,程序可以从新的段落开始。 |
|
|
5
1
我不想这么说,但最好的做法可能是研究单词的作用,然后复制它。即使在某些情况下这是错误的,它也代表了许多人已经习惯的标准。要模拟的一个行为是让撤消(ctrl-z)在替换弯引号后立即还原为直引号。 |
|
|
6
1
下面是一个可能有助于双引号的正则表达式:
它将在每一段重新开始,并且它将识别成对的引号(并且还允许您检查引号前后的间距是否正确,如果这有用的话)。
我认为把这个期限延长到你的其他案件上是合理的(我还没有必要这样做)。 这是JavaScript语法。它相当快,但我没有做过比我的“足够好”更多的优化。它可以在大约一秒钟内完成一本400页的书。我认为程序上很难达到它的速度。 |
|
|
7
1
Computational linguistics 有人吗? 有人提到,如果你有大量的文化背景,这可能是可行的。所以对这个问题的过度杀伤力但最准确的自动化解决方案是 shallow parsing . 这需要一个语料库,不管你使用什么语言和模式(例如 the Brown corpus 一般英语)。 根据语料库中出现的花引号的句法上下文,开发花引号的分类器。最后,给分类器一个带有直引号的任意语法上下文,弹出最可能的引号字符! |
|
|
8
0
她说:“我喜欢‘70年代的演出’。” 我最初认为,也许通过对文本进行多次传递来获得上下文洞察力可能会有所帮助,但这并不能解决所有的实例。 你能做的最好的事情就是列出一系列可能的词组/表达式,比如“twas”、“tis”、“70”等,然后将它们放入字典中,并对它们进行自动更正,以将笔直转换为卷曲,反之亦然。不管怎样,每个单词都会进行拼写检查,对吗?(抱歉,这对您的Emacs问题没有帮助) 从我所能看出的情况来看,oo忽略了所有弯曲的单引号。 Wikipedia 有一些关于这些烦人的事情的信息。 |
|
|
9
0
尝试shift+ctrl+“(双引号键),这对我在Windows10上很有用,使用一个名为kalispo的程序。 |