Skip to content
Snippets Groups Projects
Commit 39360618 authored by Adam Wardynski's avatar Adam Wardynski
Browse files

Merge branch 'master' of nlp.pwr.wroc.pl:wccl

parents f15b6a32 9dd9e577
Branches
No related merge requests found
Showing with 392 additions and 10 deletions
......@@ -7,7 +7,7 @@
#include <boost/noncopyable.hpp>
%}
%include "libcorpustagset.i"
%include "libcorpus/libcorpustagset.i"
%include "std_string.i"
namespace Wccl {
......
......@@ -7,12 +7,18 @@
#include <libwccl/values/match.h>
%}
%include "libcclvalue.i"
%include "std_string.i"
%include "libcclvalue.i"
%include "libcclposition.i"
// %include "libcclmatchdata.i"
// %include "libccltokenmatch.i"
%include "libcorpus/libcorpusannotatedsentence.i"
%feature("notabstract") Wccl::Match;
namespace Wccl {
// class MatchData;
class Match : public Value {
public:
const char* get_type_name() const { return type_name; }
......@@ -22,12 +28,27 @@ namespace Wccl {
}
Match();
// Match(const boost::shared_ptr<MatchData>& data);
// Match(const boost::shared_ptr<TokenMatch>& data);
// Match(const boost::shared_ptr<AnnotationMatch>& data);
// Match(const boost::shared_ptr<MatchVector>& data);
// Match(const MatchData& data);
// Match(const Match& match);
// %rename(MatchEq) operator=(const Match& match);
// Match& operator=(const Match& match);
// const MatchData& get_value() const;
// MatchData& get_value();
// void set_value(const MatchData& m);
// bool empty() const;
// TODO
// virtual Position first_token(const boost::shared_ptr<Corpus2::AnnotatedSentence>&) const;
// virtual Position last_token(const boost::shared_ptr<Corpus2::AnnotatedSentence>&) const;
std::string to_raw_string() const;
// std::string to_raw_string() const;
};
}
......
......@@ -11,7 +11,7 @@
%include "libcclposition.i"
%include "libcorpus/libcorpusannotatedsentence.i"
// %template(MatchDataPtr) boost::shared_ptr<Wccl::MatchData>;
%template(MatchDataPtr) boost::shared_ptr<Wccl::MatchData>;
namespace Wccl {
class MatchData {
......
......@@ -6,10 +6,13 @@
#include <libwccl/parser/Parser.h>
%}
%include "libcorpustagsetmanager.i"
%include "libcclbool.i"
%include "libccloperator.i"
%include "libcorpus/libcorpustagsetmanager.i"
%include "std_string.i"
%include "std_vector.i"
%include "boost_shared_ptr.i"
namespace Wccl {
class Parser {
......@@ -17,10 +20,13 @@ namespace Wccl {
Parser(const Corpus2::Tagset&);
~TagsetManager();
/* --------------------------------------------------------------------- */
// %rename (SharedPtrBoolOperator) boost::shared_ptr<Operator<Bool> >;
shared_ptr<Operator<Bool> > parseBoolOperator(const std::string&) const;
};
}
using namespace boost;
using namespace std;
using namespace Corpus2;
......
......@@ -6,9 +6,9 @@
#include <libwccl/sentencecontext.h>
%}
%include "libcorpustoken.i"
%include "libcorpuslexeme.i"
%include "libcorpussentence.i"
%include "libcorpus/libcorpustoken.i"
%include "libcorpus/libcorpuslexeme.i"
%include "libcorpus/libcorpussentence.i"
%include "libcclposition.i"
......
apply(
match(
repeat(
optional(equal(orth[0], "not:here")),
equal(class[0], adj),
optional(equal(orth[0], "not:there"))
)
),
// first(M) -> position
// regex… -> starting with w
cond(regex(orth[first(M)], "w.*")),
//cond(debug(orth[first(M)])),
actions(mark(M,"C"))
)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb">
<chunkList>
<chunk>
<sentence>
<tok>
<orth>Dwa</orth>
<lex><base>dwa</base><ctag>other</ctag></lex>
<ann chan="A">1</ann>
<ann chan="B" head="1">1</ann>
<ann chan="C">0</ann>
</tok>
<tok>
<orth>wielkie</orth>
<lex><base>wielki</base><ctag>adj</ctag></lex>
<ann chan="A">1</ann>
<ann chan="B" head="1">2</ann>
<ann chan="C" head="1">1</ann>
</tok>
<tok>
<orth>włochate</orth>
<lex><base>włochaty</base><ctag>adj</ctag></lex>
<ann chan="A">1</ann>
<ann chan="B">2</ann>
<ann chan="C">1</ann>
</tok>
<tok>
<orth>zapchlone</orth>
<lex><base>zapchlić</base><ctag>adj</ctag></lex>
<ann chan="A">1</ann>
<ann chan="B">2</ann>
<ann chan="C">1</ann>
</tok>
<tok>
<orth>koty</orth>
<lex><base>kot</base><ctag>noun</ctag></lex>
<ann chan="A" head="1">1</ann>
<ann chan="B" head="1">3</ann>
<ann chan="C">0</ann>
</tok>
<tok>
<orth>zjadły</orth>
<lex><base>zjeść</base><ctag>verb</ctag></lex>
<ann chan="A">0</ann>
<ann chan="B" head="1">4</ann>
<ann chan="C">0</ann>
</tok>
<tok>
<orth>pięć</orth>
<lex><base>pięć</base><ctag>other</ctag></lex>
<ann chan="A" head="1">2</ann>
<ann chan="B">4</ann>
<ann chan="C">0</ann>
</tok>
<tok>
<orth>tłustych</orth>
<lex><base>tłusty</base><ctag>adj</ctag></lex>
<ann chan="A">2</ann>
<ann chan="B">4</ann>
<ann chan="C">0</ann>
</tok>
<tok>
<orth>soczystych</orth>
<lex><base>soczysty</base><ctag>adj</ctag></lex>
<ann chan="A">2</ann>
<ann chan="B">4</ann>
<ann chan="C">0</ann>
</tok>
<tok>
<orth>much</orth>
<lex><base>mucha</base><ctag>noun</ctag></lex>
<ann chan="A">2</ann>
<ann chan="B">0</ann>
<ann chan="C">0</ann>
</tok>
</sentence>
</chunk>
</chunkList>
</cesAna>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb">
<chunkList>
<chunk>
<sentence>
<tok>
<orth>Początek</orth>
<lex><base>początek</base><ctag>subst:sg:nom:m3</ctag></lex>
<lex><base>początek</base><ctag>subst:sg:acc:m3</ctag></lex>
</tok>
<tok>
<orth>nowego</orth>
<lex><base>nowy</base><ctag>adj:sg:gen:m1:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:acc:m1:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:gen:m2:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:acc:m2:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:gen:m3:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:gen:n:pos</ctag></lex>
</tok>
<tok>
<orth>zdania</orth>
<lex><base>zdanie</base><ctag>subst:sg:gen:n</ctag></lex>
<lex><base>zdanie</base><ctag>subst:pl:nom:n</ctag></lex>
<lex><base>zdanie</base><ctag>subst:pl:acc:n</ctag></lex>
<lex><base>zdanie</base><ctag>subst:pl:voc:n</ctag></lex>
<lex><base>zdać</base><ctag>ger:sg:gen:n:perf:aff</ctag></lex>
</tok>
<ns/>
<tok>
<orth>.</orth>
<lex><base>.</base><ctag>interp</ctag></lex>
</tok>
</sentence>
<sentence>
<tok>
<orth>Nowy</orth>
<lex><base>nowy</base><ctag>adj:sg:nom:m1:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:nom:m2:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:nom:m3:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:acc:m3:pos</ctag></lex>
</tok>
<tok>
<orth>początek</orth>
<lex><base>początek</base><ctag>subst:sg:nom:m3</ctag></lex>
<lex><base>początek</base><ctag>subst:sg:acc:m3</ctag></lex>
</tok>
<tok>
<orth>starego</orth>
<lex><base>stary</base><ctag>adj:sg:gen:m1:pos</ctag></lex>
<lex><base>stary</base><ctag>adj:sg:acc:m1:pos</ctag></lex>
<lex><base>stary</base><ctag>adj:sg:gen:m2:pos</ctag></lex>
<lex><base>stary</base><ctag>adj:sg:acc:m2:pos</ctag></lex>
<lex><base>stary</base><ctag>adj:sg:gen:m3:pos</ctag></lex>
<lex><base>stary</base><ctag>adj:sg:gen:n:pos</ctag></lex>
</tok>
<tok>
<orth>zdania</orth>
<lex><base>zdanie</base><ctag>subst:sg:gen:n</ctag></lex>
<lex><base>zdanie</base><ctag>subst:pl:nom:n</ctag></lex>
<lex><base>zdanie</base><ctag>subst:pl:acc:n</ctag></lex>
<lex><base>zdanie</base><ctag>subst:pl:voc:n</ctag></lex>
<lex><base>zdać</base><ctag>ger:sg:gen:n:perf:aff</ctag></lex>
</tok>
<ns/>
<tok>
<orth>.</orth>
<lex><base>.</base><ctag>interp</ctag></lex>
</tok>
</sentence>
</chunk>
</chunkList>
</cesAna>
apply(
match(
optional(repeat(inter(class[0], {adj}))),
repeat(inter(class[0], {subst}))
),
cond(
not(empty(:1))
),
actions(
mark(M, "NP")
)
)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb">
<chunkList>
<chunk>
<sentence>
<tok>
<orth>Początek</orth>
<lex><base>początek</base><ctag>subst:sg:nom:m3</ctag></lex>
<lex><base>początek</base><ctag>subst:sg:acc:m3</ctag></lex>
<ann chan="NP">0</ann>
</tok>
<tok>
<orth>nowego</orth>
<lex><base>nowy</base><ctag>adj:sg:gen:m1:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:acc:m1:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:gen:m2:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:acc:m2:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:gen:m3:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:gen:n:pos</ctag></lex>
<ann chan="NP" head="1">1</ann>
</tok>
<tok>
<orth>zdania</orth>
<lex><base>zdanie</base><ctag>subst:sg:gen:n</ctag></lex>
<lex><base>zdanie</base><ctag>subst:pl:nom:n</ctag></lex>
<lex><base>zdanie</base><ctag>subst:pl:acc:n</ctag></lex>
<lex><base>zdanie</base><ctag>subst:pl:voc:n</ctag></lex>
<lex><base>zdać</base><ctag>ger:sg:gen:n:perf:aff</ctag></lex>
<ann chan="NP">1</ann>
</tok>
<ns/>
<tok>
<orth>.</orth>
<lex><base>.</base><ctag>interp</ctag></lex>
<ann chan="NP">0</ann>
</tok>
</sentence>
<sentence>
<tok>
<orth>Nowy</orth>
<lex><base>nowy</base><ctag>adj:sg:nom:m1:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:nom:m2:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:nom:m3:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:acc:m3:pos</ctag></lex>
<ann chan="NP" head="1">1</ann>
</tok>
<tok>
<orth>początek</orth>
<lex><base>początek</base><ctag>subst:sg:nom:m3</ctag></lex>
<lex><base>początek</base><ctag>subst:sg:acc:m3</ctag></lex>
<ann chan="NP">1</ann>
</tok>
<tok>
<orth>starego</orth>
<lex><base>stary</base><ctag>adj:sg:gen:m1:pos</ctag></lex>
<lex><base>stary</base><ctag>adj:sg:acc:m1:pos</ctag></lex>
<lex><base>stary</base><ctag>adj:sg:gen:m2:pos</ctag></lex>
<lex><base>stary</base><ctag>adj:sg:acc:m2:pos</ctag></lex>
<lex><base>stary</base><ctag>adj:sg:gen:m3:pos</ctag></lex>
<lex><base>stary</base><ctag>adj:sg:gen:n:pos</ctag></lex>
<ann chan="NP" head="1">2</ann>
</tok>
<tok>
<orth>zdania</orth>
<lex><base>zdanie</base><ctag>subst:sg:gen:n</ctag></lex>
<lex><base>zdanie</base><ctag>subst:pl:nom:n</ctag></lex>
<lex><base>zdanie</base><ctag>subst:pl:acc:n</ctag></lex>
<lex><base>zdanie</base><ctag>subst:pl:voc:n</ctag></lex>
<lex><base>zdać</base><ctag>ger:sg:gen:n:perf:aff</ctag></lex>
<ann chan="NP">2</ann>
</tok>
<ns/>
<tok>
<orth>.</orth>
<lex><base>.</base><ctag>interp</ctag></lex>
<ann chan="NP">0</ann>
</tok>
</sentence>
</chunk>
</chunkList>
</cesAna>
apply(
match(
optional(repeat(inter(class[0], {adj}))),
repeat(inter(class[0], {subst}))
),
cond(
equal(orth[last(:2)], "zdania")
),
actions(
mark(M, "NP")
)
)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb">
<chunkList>
<chunk>
<sentence>
<tok>
<orth>Początek</orth>
<lex><base>początek</base><ctag>subst:sg:nom:m3</ctag></lex>
<lex><base>początek</base><ctag>subst:sg:acc:m3</ctag></lex>
<ann chan="NP">0</ann>
</tok>
<tok>
<orth>nowego</orth>
<lex><base>nowy</base><ctag>adj:sg:gen:m1:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:acc:m1:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:gen:m2:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:acc:m2:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:gen:m3:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:gen:n:pos</ctag></lex>
<ann chan="NP" head="1">1</ann>
</tok>
<tok>
<orth>zdania</orth>
<lex><base>zdanie</base><ctag>subst:sg:gen:n</ctag></lex>
<lex><base>zdanie</base><ctag>subst:pl:nom:n</ctag></lex>
<lex><base>zdanie</base><ctag>subst:pl:acc:n</ctag></lex>
<lex><base>zdanie</base><ctag>subst:pl:voc:n</ctag></lex>
<lex><base>zdać</base><ctag>ger:sg:gen:n:perf:aff</ctag></lex>
<ann chan="NP">1</ann>
</tok>
<ns/>
<tok>
<orth>.</orth>
<lex><base>.</base><ctag>interp</ctag></lex>
<ann chan="NP">0</ann>
</tok>
</sentence>
<sentence>
<tok>
<orth>Nowy</orth>
<lex><base>nowy</base><ctag>adj:sg:nom:m1:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:nom:m2:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:nom:m3:pos</ctag></lex>
<lex><base>nowy</base><ctag>adj:sg:acc:m3:pos</ctag></lex>
<ann chan="NP">0</ann>
</tok>
<tok>
<orth>początek</orth>
<lex><base>początek</base><ctag>subst:sg:nom:m3</ctag></lex>
<lex><base>początek</base><ctag>subst:sg:acc:m3</ctag></lex>
<ann chan="NP">0</ann>
</tok>
<tok>
<orth>starego</orth>
<lex><base>stary</base><ctag>adj:sg:gen:m1:pos</ctag></lex>
<lex><base>stary</base><ctag>adj:sg:acc:m1:pos</ctag></lex>
<lex><base>stary</base><ctag>adj:sg:gen:m2:pos</ctag></lex>
<lex><base>stary</base><ctag>adj:sg:acc:m2:pos</ctag></lex>
<lex><base>stary</base><ctag>adj:sg:gen:m3:pos</ctag></lex>
<lex><base>stary</base><ctag>adj:sg:gen:n:pos</ctag></lex>
<ann chan="NP" head="1">1</ann>
</tok>
<tok>
<orth>zdania</orth>
<lex><base>zdanie</base><ctag>subst:sg:gen:n</ctag></lex>
<lex><base>zdanie</base><ctag>subst:pl:nom:n</ctag></lex>
<lex><base>zdanie</base><ctag>subst:pl:acc:n</ctag></lex>
<lex><base>zdanie</base><ctag>subst:pl:voc:n</ctag></lex>
<lex><base>zdać</base><ctag>ger:sg:gen:n:perf:aff</ctag></lex>
<ann chan="NP">1</ann>
</tok>
<ns/>
<tok>
<orth>.</orth>
<lex><base>.</base><ctag>interp</ctag></lex>
<ann chan="NP">0</ann>
</tok>
</sentence>
</chunk>
</chunkList>
</cesAna>
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment