[CWB] Regular expressions with word groups
Josep M. Fontana
josepm.fontana at upf.edu
Tue Jul 28 19:56:47 CEST 2020
Thanks Andrews and/or Andreses for your quick responses,
I have had problems with both of our suggestions. In principle I would
like to use a single ! operator for the whole regular expression pattern
rather than having to add it to every relevant subpattern.
But wherever I place the '!' i don't seem to get the desired results.
So, if I do the following:
[(word="f[ei]rid.*")|(word="muert[ao].*")] !(([(pos="S.*") &
(word="d.*")][word=".*el"][word="ca[buv]allo.*"])|[word="entierra"]|([word="en"][word="tierra"]))
one of the first hits I get is:
cayo*muerto*en tierra
This should be out because the last of the word groups that I have is
([word="en"][word="tierra"]). Shouldn't the ! operator have scope over
the last group as well?
Josep M.
> Hey Josep,
>
> I'm fairly sure you just use ! if you're not testing a specific
> annotation. Place ! before the left parenthesis of the group you're
> trying to test. So if you're trying to test the negation of that
> entire group, just add ! to the front of it. See 2.6 in the CQP Tutorial.
>
> All the best,
>
> Andrew
>
>
>
> On Tue, Jul 28, 2020 at 11:15 AM Josep M. Fontana
> <josepm.fontana at upf.edu <mailto:josepm.fontana at upf.edu>> wrote:
>
> Hi,
>
> I don't know whether this is the right forum to ask this
> particular kind
> of question but I figure there are enough people here with sufficient
> experience to lend me a hand with this problem. If you cannot
> answer the
> question but you can point me to some other forum/group where I
> can find
> help, I would appreciate it.
>
> So, I have the following regular expression to identify a set of
> expressions that can appear in a particular position in the text.
> What I
> would like to do is to create the negation of this regular
> expression.
> That is, any string/expression/group of expressions that does NOT
> contain the expressions in these groups.
>
> I know how to use the != operator for a particular item (word, pos,
> lemma) but where would one insert this operator to have scope over
> the
> whole group of expressions that match this pattern? Thanks in advance.
>
> (([(pos="S.*") &
> (word="d.*")][word=".*el"][word="ca[buv]allo.*"])|[word="entierra"]|([word="en"][word="tierra"]))
>
>
> Josep M.
>
>
> _______________________________________________
> CWB mailing list
> CWB at sslmit.unibo.it <mailto:CWB at sslmit.unibo.it>
> http://liste.sslmit.unibo.it/mailman/listinfo/cwb
>
>
> _______________________________________________
> CWB mailing list
> CWB at sslmit.unibo.it
> http://liste.sslmit.unibo.it/mailman/listinfo/cwb
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://liste.sslmit.unibo.it/pipermail/cwb/attachments/20200728/2074e279/attachment-0001.html>
More information about the CWB
mailing list