ArthurW 2010-01-23 #1 假设字符串为ahahahahaha 根据regular expression的常规方法,如果要匹配aha,则对该字符串匹配3次,这也就是AntConc的匹配方式(AntConc就是用Perl写的)。 但我个人以为在该字符串中包含的aha似乎应该是5个,不知对不对?前段时间自己写KWIC concordancer的时候的想法就是这样,所以我的做法是:匹配第一次之后,将指针向后移1个字符,继续匹配,这样的运行效率比较低,但可以保证在上述字符串中检索到5个aha。 不知我是否说清了问题,请问各位高手,我的这种匹配方法是否必要?
假设字符串为ahahahahaha 根据regular expression的常规方法,如果要匹配aha,则对该字符串匹配3次,这也就是AntConc的匹配方式(AntConc就是用Perl写的)。 但我个人以为在该字符串中包含的aha似乎应该是5个,不知对不对?前段时间自己写KWIC concordancer的时候的想法就是这样,所以我的做法是:匹配第一次之后,将指针向后移1个字符,继续匹配,这样的运行效率比较低,但可以保证在上述字符串中检索到5个aha。 不知我是否说清了问题,请问各位高手,我的这种匹配方法是否必要?
ArthurW 2010-01-23 #2 回复: 一个关于KWIC编程的疑惑 个人觉得这不是个小问题,试想如果用regex方式用antconc在Brown中检索\w+/nn \w+/nn,即两个相邻的名词,假如有三个名词连续的情况,则在该处只能匹配一次,检索结果就完全不准确了
回复: 一个关于KWIC编程的疑惑 个人觉得这不是个小问题,试想如果用regex方式用antconc在Brown中检索\w+/nn \w+/nn,即两个相邻的名词,假如有三个名词连续的情况,则在该处只能匹配一次,检索结果就完全不准确了
ArthurW 2010-01-23 #4 回复: 一个关于KWIC编程的疑惑 作者 superyangt: 按照你的思路,假设字符串是aahaahaahaahaahaa,要查找的是aahaa,那岂不是要后退2个才行? Click to expand... 这个情况下我觉得也应该匹配5次,不知我的表达是不是清楚 我的算法其实是这样:每次匹配之后把整个字符串的最左的1个字符去掉,在剩余部分继续匹配,如此反复,直到余下的不再包含key word
回复: 一个关于KWIC编程的疑惑 作者 superyangt: 按照你的思路,假设字符串是aahaahaahaahaahaa,要查找的是aahaa,那岂不是要后退2个才行? Click to expand... 这个情况下我觉得也应该匹配5次,不知我的表达是不是清楚 我的算法其实是这样:每次匹配之后把整个字符串的最左的1个字符去掉,在剩余部分继续匹配,如此反复,直到余下的不再包含key word
ArthurW 2010-01-24 #8 回复: 一个关于KWIC编程的疑惑 作者 superyangt: 我个人觉得,应该是3个。 Click to expand... 如果文本是I have a dream,检索的目标是由两个单词构成的词串,那么结果应该是几个呢?常规的正则表达式检索结果是2个,但我觉得应该是3个
回复: 一个关于KWIC编程的疑惑 作者 superyangt: 我个人觉得,应该是3个。 Click to expand... 如果文本是I have a dream,检索的目标是由两个单词构成的词串,那么结果应该是几个呢?常规的正则表达式检索结果是2个,但我觉得应该是3个
Y Yesir 2010-11-12 #9 回复: 一个关于KWIC编程的疑惑 把字符串ahahahahaha 保存到一个txt文件中,然后使用正则表达式(a)(h)(?=\1) 在PowerGrep中可检索收集到5个aha,具体操作参考附件中图片。 附件 aha.jpg 105.9 KB · 浏览: 6
回复: 一个关于KWIC编程的疑惑 把字符串ahahahahaha 保存到一个txt文件中,然后使用正则表达式(a)(h)(?=\1) 在PowerGrep中可检索收集到5个aha,具体操作参考附件中图片。
Y Yesir 2010-11-12 #10 回复: 一个关于KWIC编程的疑惑 作者 ArthurW: 如果文本是I have a dream,检索的目标是由两个单词构成的词串,那么结果应该是几个呢?常规的正则表达式检索结果是2个,但我觉得应该是3个 Click to expand... “I have a dream” 的2元组(2-Gram)确实应有3个。测试方法:把 “I have a dream” 保存到一个txt文件中,用正则表达式(\b\w+\b)(?=((\s+\b\w+\b){1}))在PowerGrep中的“Collect data”功能。具体操作如图: 附件 dream.jpg 106.5 KB · 浏览: 4
回复: 一个关于KWIC编程的疑惑 作者 ArthurW: 如果文本是I have a dream,检索的目标是由两个单词构成的词串,那么结果应该是几个呢?常规的正则表达式检索结果是2个,但我觉得应该是3个 Click to expand... “I have a dream” 的2元组(2-Gram)确实应有3个。测试方法:把 “I have a dream” 保存到一个txt文件中,用正则表达式(\b\w+\b)(?=((\s+\b\w+\b){1}))在PowerGrep中的“Collect data”功能。具体操作如图: