鉴于您的数据存储在数据库中的某个位置:
Hello my name is Tom I like dinosaurs to talk about SQL.
SQL is amazing. I really like SQL.
Run Code Online (Sandbox Code Playgroud)
我们希望实施网站搜索,允许访问者输入条款并返回相关记录.用户可能会搜索:
Dinosaurs
Run Code Online (Sandbox Code Playgroud)
和SQL:
WHERE articleBody LIKE '%Dinosaurs%'
Run Code Online (Sandbox Code Playgroud)
通过返回正确的记录集来处理问题.
但是,如果用户误入恐龙,我们将如何应对?IE:
Dinosores
Run Code Online (Sandbox Code Playgroud)
(可怜的痛苦迪诺).我们如何搜索允许拼写错误?我们可以将我们在搜索中看到的常见拼写错误与正确的拼写相关联,然后搜索原始字词+更正后的字词,但维护时间很长.
有什么办法编程吗?
编辑
出现SOUNDEX可能有所帮助,但任何人都可以使用soundex给我一个输入搜索词的例子:
Dinosores wrocks
Run Code Online (Sandbox Code Playgroud)
返回记录而不是做:
WHERE articleBody LIKE '%Dinosaurs%' OR articleBody LIKE '%Wrocks%'
Run Code Online (Sandbox Code Playgroud)
谁会回来squadoosh?
我正在尝试构建一个接受文本并输出本文单词的拼音拼写的系统.关于哪些库可以在Python和Java中使用的任何想法?
Twitter的趋势主题通常不仅仅包含一个词.但对于复合术语,通常有不同的拼写方式,例如:
"混血王子"/"混血王子"
要查找提及趋势主题的所有更新,您需要所有拼写方式.Twitter这样做:
Twitter的趋势主题管理员http://i26.tinypic.com/hu4uw1.png
您在左侧有主题名称,在右侧有不同的拼写方式.你认为这是手动还是自动完成的?是否可以自动执行此操作?如果是的话:怎么样?
我希望你能帮助我.提前致谢!
我有一些使用guids的测试.使用的guid不需要非常独特,它们只需要是guids.随机指南很无聊 - 所以我试图找到有趣的指导词.现在,我没有比"00000000-feed-dada-iced-c0ffee000000"更好的东西.理想情况下,我会生成一个动词,名词,介词列表.
只花了几分钟来解决这个问题,我就在这里:
为什么没有人有一个有趣的guid发生器可用于我的直接满足?你会怎么做?有关如何改进这种特殊的guid生成过程的任何建议都是受欢迎的.
我正在寻找一种方法在iPhone应用程序(文字游戏)中包含一个完整的英语词典,数据库必须能够包括动词的所有共轭可能性,必须包括单数和复数拼写.所以我的应用程序可以查询数据库以检查拼写是否正确.
是否有包含这些数据的免费或商业数据库?
编辑距离的算法给出了两个字符串之间距离的度量.
问题:哪些措施与检测两个实际上相同的不同人名最相关?(由于误导而不同).诀窍是它应该尽量减少误报.例:
Obaama Obama =>应该合并
奥巴马Ibama =>不应该合并.
这只是一个简单的例子.他们的程序员和计算机科学家是否更详细地解决了这个问题?
正如标题所要求的那样,为什么System.getProperty("line.seperator")返回null.
从环顾四周,我认为它不应该.
运行此代码显示它似乎被设置为分隔符被破坏的行:
class Test {
public static void main( String[] args ) {
System.out.println(System.getProperties());
}
}
$ java Test
{java.runtime.name=Java(TM) SE Runtime Environment, sun.boot.library.path=/usr/lib/jvm/java-6-sun-1.6.0.24/jre/lib/i386, java.vm.version=19.1-b02, java.vm.vendor=Sun Microsystems Inc., java.vendor.url=http://java.sun.com/, path.separator=:, java.vm.name=Java HotSpot(TM) Server VM, file.encoding.pkg=sun.io, sun.java.launcher=SUN_STANDARD, user.country=GB, sun.os.patch.level=unknown, java.vm.specification.name=Java Virtual Machine Specification, user.dir=/home/niko, java.runtime.version=1.6.0_24-b07, java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment, java.endorsed.dirs=/usr/lib/jvm/java-6-sun-1.6.0.24/jre/lib/endorsed, os.arch=i386, java.io.tmpdir=/tmp, line.separator=
, java.vm.specification.vendor=Sun Microsystems Inc., os.name=Linux, (And so on...)
Run Code Online (Sandbox Code Playgroud)
但是当我试图在代码中获取它时,我得到null:
class Test{
public static void main( String[] args ) {
System.out.println("This is not " + System.getProperty("line.seperator") + "Broken");
}
}
$ …Run Code Online (Sandbox Code Playgroud) 我将Nodeclipse"Enide Studio 2014"插件添加到与我的Java项目相同的Workspace中(我通常不这样做).
我的Node Perspective工作得很好,我创建了一个新的Node项目,它都运行得很好.
然后我回到我的Java Perspective并注意到我的所有Java项目都启用了拼写检查 - 注释"sp"位于左边缘,用于遍布整个变量的普通名称.
我确保全局禁用拼写检查(窗口 - 首选项 - 常规 - 编辑器 - 文本编辑器 - 拼写).未启用.但仍然存在于我的所有Java项目中.如何在不卸载Nodeclipse的情况下关闭(后退)?
我不要任何代码。我真的很想自己学习逻辑,但我需要指出正确的方向。伪代码没问题。我基本上需要使用哈希表作为我的主要数据结构来创建拼写检查器。我知道它可能不是这项工作的最佳数据结构,但它是我的任务。拼写正确的单词将来自文本文件。请指导我如何解决这个问题。
我正在考虑这样做的方式:
我猜我需要创建一个接受字符串单词的 ADT 类。
我需要一个主类来读取字典文本文件并获取用户输入的句子。该类然后扫描该字符串,然后通过注意单词之间的空格将每个单词放入一个 ArrayList 中。然后,布尔方法会将 Arraylist 中的每个单词传递给将处理拼写错误的类,并在单词有效或错误时返回。
我相信我需要创建一个类来从单词列表中生成拼写错误并将它们存储到哈希表中?将有一个布尔方法,它接受一个字符串参数,用于检查表中的单词是否有效并返回 true 或 false。
在生成拼写错误时,我必须注意的关键概念是:(以单词“Hello”为例)
我怎样才能改进这种想法?
编辑!这就是我想出的使用 HashSet
/**
* The main program that loads the correct dictionary spellings
* and takes input to be analyzed from user.
* @author Catherine Austria
*/
public class SpellChecker {
private static String stringInput; // input to check;
private static String[] checkThis; // the stringInput turned array of words to check.
public static HashSet dictionary; // the dictionary used
/** …Run Code Online (Sandbox Code Playgroud) 我已经使用brew 命令下载了 hunspell,并想在 Emacs 中使用它,但是 hunspell 似乎没有在 中找到我的*.aff和*.dic文件~/Library/Spelling,即使它们在那里。
使用命令行命令hunspell -D,结果是:
SEARCH PATH:
.::/usr/share/hunspell:/usr/share/myspell:/usr/share/myspell/dicts:/Library/Spelling:/Users/macbook/.openoffice.org/3/user/wordbook:/Users/macbook/.openoffice.org2/user/wordbook:/Users/macbook/.openoffice.org2.0/user/wordbook:/Users/macbook/Library/Spelling:/opt/openoffice.org/basis3.0/share/dict/ooo:/usr/lib/openoffice.org/basis3.0/share/dict/ooo:/opt/openoffice.org2.4/share/dict/ooo:/usr/lib/openoffice.org2.4/share/dict/ooo:/opt/openoffice.org2.3/share/dict/ooo:/usr/lib/openoffice.org2.3/share/dict/ooo:/opt/openoffice.org2.2/share/dict/ooo:/usr/lib/openoffice.org2.2/share/dict/ooo:/opt/openoffice.org2.1/share/dict/ooo:/usr/lib/openoffice.org2.1/share/dict/ooo:/opt/openoffice.org2.0/share/dict/ooo:/usr/lib/openoffice.org2.0/share/dict/ooo
AVAILABLE DICTIONARIES (path is not mandatory for -d option):
/Users/macbook/Library/Spelling/cs_CZ
Run Code Online (Sandbox Code Playgroud)
这里,cs_CZ是存储我个人拼写的文件的名称。该文件夹中还有其他文件,包括cs_CZ.aff和cs_CZ.dic以及en_GB,但 hunspell 会忽略这些文件。
在 Emacs 中,我尝试过:
SEARCH PATH:
.::/usr/share/hunspell:/usr/share/myspell:/usr/share/myspell/dicts:/Library/Spelling:/Users/macbook/.openoffice.org/3/user/wordbook:/Users/macbook/.openoffice.org2/user/wordbook:/Users/macbook/.openoffice.org2.0/user/wordbook:/Users/macbook/Library/Spelling:/opt/openoffice.org/basis3.0/share/dict/ooo:/usr/lib/openoffice.org/basis3.0/share/dict/ooo:/opt/openoffice.org2.4/share/dict/ooo:/usr/lib/openoffice.org2.4/share/dict/ooo:/opt/openoffice.org2.3/share/dict/ooo:/usr/lib/openoffice.org2.3/share/dict/ooo:/opt/openoffice.org2.2/share/dict/ooo:/usr/lib/openoffice.org2.2/share/dict/ooo:/opt/openoffice.org2.1/share/dict/ooo:/usr/lib/openoffice.org2.1/share/dict/ooo:/opt/openoffice.org2.0/share/dict/ooo:/usr/lib/openoffice.org2.0/share/dict/ooo
AVAILABLE DICTIONARIES (path is not mandatory for -d option):
/Users/macbook/Library/Spelling/cs_CZ
Run Code Online (Sandbox Code Playgroud)
使用推荐输入“czech”运行 ispell-change-dictinary 后,ispell-word 给出:
使用捷克语词典启动新的 Ispell 进程 hunspell... ispell-init-process: 无法打开名为“czech”的词典的词缀或词典文件。
...和flyspell模式:
启用 Flyspell 模式时出错:(无法打开名为“czech”的词典的词缀或词典文件。)
谢谢。