c#开源 文法分析
语法在许多需要定期书写或处理大量单词的教师,学生,商人和其他人员中很流行。 这是一个有用的工具,但是您需要注册并登录才能使用它,而且我很少将网站登录数据保留在缓存中。
我经常处理单词以撰写技术和创意作品,并且躲避我的文本编辑器以打开Web浏览器,而访问需要我登录的网站却少了很多,这通常对我来说很麻烦。 幸运的是,有了一些开源实用程序,我可以避免这种干扰。
语法的主要好处是检查:
- 拼写错误
- 英语语法错误
- Pla窃
- 样式
以下是我用于所有这些功能的开源替代方案。
拼写
拼写检查在大多数文字处理器甚至文本编辑器中都很常见。 我在Emacs中使用Flyspell 。 Flyspell-mode是次要模式,可提供即时的拼写检查。 如果我的单词拼写错误,则在红色底线下划线,提示我进行复习。 它还具有自动纠正单词的选项,如果我对技术,幻想和科幻小说的了解不多,那么我可能会使用它。
![Emacs中的Flyspell Flyspell in Emacs](https://i-blog.csdnimg.cn/blog_migrate/52f0134746963b5a5ac9a4c0e4bedc5b.png)
您可以使用Emacs的软件包界面安装Flyspell。 要在启动时使其成为活动模式,请将其添加到您的.emacs文件中:
(require 'flyspell)
(flyspell-mode +1)
语法
对于语法问题,我使用LanguageTool API。 这是一个由欧盟资助并由全球编码人员开发的开源网站和图书馆。
![语言工具 LanguageTool](https://i-blog.csdnimg.cn/blog_migrate/18d2d23f3ff7df2bfe94ca0e402d2b57.jpeg)
您可以将LanguageTool用作LibreOffice或Firefox,Chromium,Brave,Chrome和其他浏览器的插件。 作为终端命令; 或作为图形应用程序。 它甚至具有适用于专有编辑器(如Google Docs和Microsoft Word)的插件。 如果您下载它供本地使用,则必须安装Java 。
![LanguageTool用户界面 LanguageTool UI](https://i-blog.csdnimg.cn/blog_migrate/e3ccfa8690012652bef85d2fd04a6e61.png)
还有一个Emacs插件,本质上是Emacs和LanguageTool Java库之间的Elisp连接器。 通过在Emacs中安装langtool软件包,LanguageTool可以检查我的语法,而无需自己有意识地启动它。
抄袭检查
知识共享和开放源资源,但是即使如此,也要出于法律义务或出于礼貌(取决于许可证)而归功于这些资源。 保持影响力的一种方法是对照互联网上已经存在的内容来验证您的最终工作。我使用Python脚本进行my窃检查。 这绝不是一个好脚本。 我将其组合在一起,以作为一种快速简便的方法来防止出现明显的复制粘贴错误或错误判断。 因此,尽管它不是一个优雅的脚本(选项解析过于复杂且效率低下,并且没有可调整的公差级别来排除极短的搜索时间),但肯定会有很多误报,但这是如何使用快速Python的一个示例脚本可以替换原本不适合您的工作流程的服务。
在使用它之前,您必须安装Python google模块以启用简单的Google搜索:
$ python3 -m pip install google --user
我专门使用Google,而不是像YaCy这样的开源搜索引擎,因为我希望从中提取大量数据。
这是脚本:
#!/usr/bin/env python3
# stollen plagiarism checker
# by Seth Kenlon <skenlon@redhat.com>
# GPLv3
# This program is free software: you can redistribute it
# and/or modify it under the terms of the GNU General
# Public License as published by the Free Software
# Foundation, either version 3 of the License, or (at
# your option) any later version.
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU General Public License
# for more details.
# You should have received a copy of the GNU General
# Public License along with this program.
# If not, see <http://www.gnu.org/licenses/>.
import
sys
import
random
from pathlib
import Path
from googlesearch
import search
def Scrub
( ARG
) :
"""
Read lines of file.
"""
f
=
open
( ARG
,
'r'
)
LINES
= f.
readlines
(
)
Search
( LINES
)
def Search
( LINES
) :
"""
Search Internet for exact match of LINE.
"""
COUNT
=
0
for LINE
in LINES:
COUNT +
=
1
PAUSE
=
random .
randrange
(
1
,
4
)
if VERBOSE:
print
(
"Searching..."
)
for ITEM
in search
( LINE
, tld
=
"com"
, num
=
1
, stop
=
1
, pause
= PAUSE
) :
if VERBOSE:
print
(
"WARNING:" + LINE +
" → " + ITEM
)
else :
print
(
"WARNING: line " +
str
( COUNT
) +
" → " + ITEM
)
if __name__
==
"__main__" :
random .
seed
(
)
n
=
1
if
sys .
argv
[
1
]
==
"--verbose"
or
sys .
argv
[
1
]
==
"-v" :
VERBOSE
=
True
# shift 1
n +
=
1
else :
VERBOSE
=
False
f
= Path
(
sys .
argv
[ n
]
)
if
not f.
is_file
(
) :
print
(
"Provide a text file to check."
)
exit
(
)
else :
Scrub
(
sys .
argv
[ n
]
)
这是一个简单的测试文件,其中包含公共领域的作品《 爱丽丝梦游仙境》中的几行内容以及受版权保护的歌曲中的几行内容(脚本均捕获了这两行内容)以及该脚本未正确标记的无意义文本行:
Alice was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do: once or twice she had peeped into the book her sister was reading, but it had no pictures or conversations in it, “and what is the use of a book,” thought Alice “without pictures or conversations?”
So she was considering in her own mind (as well as she could, for the hot day made her feel very sleepy and stupid), whether the pleasure of making a daisy-chain would be worth the trouble of getting up and picking the daisies, when suddenly a White Rabbit with pink eyes ran close by her.
acrutchen macpie.
Just when you think you've got more than enough, that's when it all up and flies away
您可以通过将Python脚本保存到名为stollen.py的文件(以美味的圣诞蛋糕命名,而不是有人会使用被盗内容的想法)并将测试文件的内容保存到test.txt中来进行测试。 预期结果在第5行以外的所有地方都达到了目标。
$
chmod +x .
/ stollen.py
$ .
/ stollen.py test.txt
WARNING: line
1 → https:
// www.ego4u.com
/ en
/ read-on
/ literature
/ alice-wonderland?part1
WARNING: line
3 → https:
// www.goodreads.com
/ quotes
/
733845 -so-she-was-considering-in-her-own-mind-as-well
WARNING: line
7 → https:
// genius.com
/ Prince-and-the-new-power-generation-money-dont-matter-
2 -night-lyrics
为了防止被Google阻止,我在两次调用之间使用了随机的几秒钟来暂停,因此该脚本在设计上并不是很快。 再说一次,如果您曾经使用过语法检查,您也知道它的窃检查器也不太快。
风格回顾
在自动编辑器提供的所有功能中,样式审查对我而言最不重要。 即使使用Grammarly的可调整公差设置来设置从正式到休闲的写作风格,我也几乎从未同意它的建议,并且很少发现我不喜欢的东西。
我认为,定义适当的样式对于作者和读者都是主观的,并且在自动编辑的情况下,我认为这实际上是严格应用规则的简写。 因此,实际上重要的是违反规则,这取决于作者或审阅者是否应该应用或忽略该规则。
所有语言中最严格的是用于计算机的构造语言,例如C,Java,Python等。 由于这些语言是严格定义的,因此可以严格按照定义它们的规则对它们进行严格检查。 这个过程被称为计算机科学掉毛 ,和的目的proselint项目是把这个过程自然语言。
您可以将proselint作为Python模块安装:
$ python3 -m pip install proselint --user
安装完成后,对一个文本文件运行它:
$ prolint myfile.txt
它提供语法建议,并执行一些样式检查以捕获陈词滥调和语。 这是对散文的有用和客观的观察,您可以随意忽略或遵循其建议。 如果不确定写作的清晰度或活力,请尝试一下。
开源意味着选择
有很多网站没有发布其源代码,我们每天都在使用它们。 找到一个好的开源替代方案并不总是与许可或源代码可用性有关。 有时,这是关于找到一种比您以前使用的工具更适合您的工具。
使用开源,您可以调查您的选择并进行测试,直到找到最接近您个人喜好的选择。 如果要进行样式检查,则可以选择几个短毛绒和样式检查器。 如果需要拼写检查和语法检查器,则可以使用许多应用程序来集成不同的字典和界面。 非开放式应用程序通常不会提供这种灵活性。 如果您将自己限制在没有打开的软件(即使仅执行少量任务),则可能很难发现各种可能性。
今天,挑战自己,无论是拼写检查,自动样式批判还是其他完全挑战:找到一个开源替代方案,看看是否可以将例行事物变成引人注目的,有趣和有效的事物。
翻译自: https://opensource.com/article/20/3/open-source-writing-tools
c#开源 文法分析