From 53934adffc1589a6b60c4e04f44bbbac29e7fd95 Mon Sep 17 00:00:00 2001 From: chaitalisaini Date: Mon, 5 Mar 2018 14:51:26 +0530 Subject: [PATCH 1/3] update rules for removing table markup --- gensim/corpora/wikicorpus.py | 15 ++++++++++----- gensim/test/test_corpora.py | 12 ++++++++++++ .../test/test_data/enwiki-table-markup.xml.bz2 | Bin 0 -> 64107 bytes 3 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 gensim/test/test_data/enwiki-table-markup.xml.bz2 diff --git a/gensim/corpora/wikicorpus.py b/gensim/corpora/wikicorpus.py index 06873e77d3..7d9b06a05f 100644 --- a/gensim/corpora/wikicorpus.py +++ b/gensim/corpora/wikicorpus.py @@ -68,9 +68,9 @@ """Math content.""" RE_P11 = re.compile(r'<(.*?)>', re.DOTALL | re.UNICODE) """All other tags.""" -RE_P12 = re.compile(r'\n(({\|)|(\|-)|(\|}))(.*?)(?=\n)', re.UNICODE) +RE_P12 = re.compile(r'(({\|)|(\|-(?!\d))|(\|}))(.*?)(?=\n)', re.UNICODE) """Table formatting.""" -RE_P13 = re.compile(r'\n(\||\!)(.*?\|)*([^|]*?)', re.UNICODE) +RE_P13 = re.compile(r'(\||\!)(.*?\|)*([^|]*?)', re.UNICODE) """Table cell formatting.""" RE_P14 = re.compile(r'\[\[Category:[^][]*\]\]', re.UNICODE) """Categories.""" @@ -78,7 +78,8 @@ """Remove File and Image templates.""" RE_P16 = re.compile(r'\[{2}(.*?)\]{2}', re.UNICODE) """Capture interlinks text and article linked""" - +RE_P17 = re.compile(r'(\n[ ]{0,2}((bgcolor)|(\d{0,1}[ ]?colspan)|(rowspan)|(style=)|(class=)|(align=))(.*))|(^[ ]{0,2}((bgcolor)|(\d{0,1}[ ]?colspan)|(rowspan)|(style=)|(class=)|(align=))(.*))', re.UNICODE) +"""Table markup""" IGNORED_NAMESPACES = [ 'Wikipedia', 'Category', 'File', 'Portal', 'Template', 'MediaWiki', 'User', 'Help', 'Book', 'Draft', 'WikiProject', @@ -185,10 +186,14 @@ def remove_markup(text, promote_remaining=True, simplify_links=True): if simplify_links: text = re.sub(RE_P6, '\\2', text) # simplify links, keep description only # remove table markup - - text = text.replace('||', '\n|') # each table cell on a separate line + text = text.replace("!!", "\n|") # leave only cell content(in table head) + text = text.replace("|-||", "\n|") # for cases where a cell is filled with '-' text = re.sub(RE_P12, '\n', text) # remove formatting lines + text = text.replace('|||', '|\n|') # each table cell on a separate line(where |{{a|b}}||cell-content) + text = text.replace('||', '\n|') # each table cell on a separate line text = re.sub(RE_P13, '\n\\3', text) # leave only cell content + text = re.sub(RE_P17, '', text) # remove formatting lines + # remove empty mark-up text = text.replace('[]', '') # stop if nothing changed between two iterations or after a fixed number of iterations diff --git a/gensim/test/test_corpora.py b/gensim/test/test_corpora.py index 724db86957..200bb8a6ea 100644 --- a/gensim/test/test_corpora.py +++ b/gensim/test/test_corpora.py @@ -645,6 +645,18 @@ def test_max_token_len_set(self): corpus = self.corpus_class(self.enwiki, processes=1, token_max_len=16, lemmatize=False) self.assertTrue(u'collectivization' in next(corpus.get_texts())) + def test_removed_table_markup(self): + """ + Check if all the table markup has been removed. + """ + enwiki_file = datapath('enwiki-table-markup.xml.bz2') + corpus = self.corpus_class(enwiki_file) + texts = corpus.get_texts() + table_markup = ["style", "class", "border", "cellspacing", "cellpadding", "colspan", "rowspan"] + for text in texts: + for word in table_markup: + self.assertTrue(word not in text) + # #TODO: sporadic failure to be investigated # def test_get_texts_returns_generator_of_lists(self): # corpus = self.corpus_class(self.enwiki) diff --git a/gensim/test/test_data/enwiki-table-markup.xml.bz2 b/gensim/test/test_data/enwiki-table-markup.xml.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..8b5b3ec44f5ae6c6bb2dad5fb5eb36abc5121488 GIT binary patch literal 64107 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

r6{BD>=aq}F&Pl3d zC)mS5KV)W%-@=YezD4=pz}{soIUr}P1=Dj0mXIo4$tPBYMkc#TO$|O} zj&oVM93o{ZWX;40F^j7X-qNmVLIt9$lm&LI% zUjwVNJCFsG@Fd=xJl;lQ-WDzlrRJna{>hWBGKbB37C}-s&;iJdBA{E%Lq$N^?1}xw zP&|Pdp0*$KPmk_CUe}_@vAQRpL|F!ks7YV%J;HMxN};340CT?{Yvb76`=B9`09%Ky z*XSx&NFT#Bfcp4Wq4GUiRkzMkx^S`u)gp$^27Yt}*{Ba6WqItN!vn{C8K!LG@vom0 z2J?o*K;DAfDQ{&W5eCHs&q+s7!PNX88{9`teEDzM@lh!pyHx_%PIeIGq(1%zKX zct&N;8Mk}3lZ|cbbo^4@cr&9{}2DpaRG-s)NbKX!#bbnfA(A09}BbV{N5ezf8GCDNfLDb_qNT6E9kDh zcN75AU(FwD%Es+K&~48P5F!4>E4N4gfa+XE@_(ZuX%)MM2SH(hG{g7wx?wLev5j(V zue02*$N4|M>YSh751+XG#2?0o_Nw;u_A&l5F%Rv3jZyo*(-oiRPr;pjP=J34`gbFO zKlnajvCQr;H?YaVkLF=-<_dvmNN;Bj&*jtmf7<`Q|I_`y%6?z}zuo`NztL~>UvJ_+ z{~V9|2mRCk!T;RJe$Uzb|Eu->yL)!3f4^V%9`AqC=kfVwdmcR5B1iAUe%q9O)fhlm z{q5m6e}ntq;Q#ag-|O)IAN9T8oR9GTE+7AYFRDM<{Jx*L?sNWazi@u%!hiUGFE8W& QC;#zxBvXY63~TlSAkpa`rT_o{ literal 0 HcmV?d00001 From 3711d8e9e6aaad789290a603029c8806e79ba70d Mon Sep 17 00:00:00 2001 From: chaitalisaini Date: Fri, 9 Mar 2018 21:12:22 +0530 Subject: [PATCH 2/3] add pep8 and test fix --- gensim/corpora/wikicorpus.py | 10 +++++----- gensim/test/test_corpora.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/gensim/corpora/wikicorpus.py b/gensim/corpora/wikicorpus.py index 7d9b06a05f..a20bc2ba4e 100644 --- a/gensim/corpora/wikicorpus.py +++ b/gensim/corpora/wikicorpus.py @@ -70,7 +70,7 @@ """All other tags.""" RE_P12 = re.compile(r'(({\|)|(\|-(?!\d))|(\|}))(.*?)(?=\n)', re.UNICODE) """Table formatting.""" -RE_P13 = re.compile(r'(\||\!)(.*?\|)*([^|]*?)', re.UNICODE) +RE_P13 = re.compile(r'(?<=(\n[ ])|(\n\n)|([ ]{2})|(.\n)|(.\t))(\||\!)([^[\]\n]*?\|)*', re.UNICODE) """Table cell formatting.""" RE_P14 = re.compile(r'\[\[Category:[^][]*\]\]', re.UNICODE) """Categories.""" @@ -78,7 +78,7 @@ """Remove File and Image templates.""" RE_P16 = re.compile(r'\[{2}(.*?)\]{2}', re.UNICODE) """Capture interlinks text and article linked""" -RE_P17 = re.compile(r'(\n[ ]{0,2}((bgcolor)|(\d{0,1}[ ]?colspan)|(rowspan)|(style=)|(class=)|(align=))(.*))|(^[ ]{0,2}((bgcolor)|(\d{0,1}[ ]?colspan)|(rowspan)|(style=)|(class=)|(align=))(.*))', re.UNICODE) +RE_P17 = re.compile(r'(\n.{0,4}((bgcolor)|(\d{0,1}[ ]?colspan)|(rowspan)|(style=)|(class=)|(align=)|(scope=))(.*))|(^.{0,2}((bgcolor)|(\d{0,1}[ ]?colspan)|(rowspan)|(style=)|(class=)|(align=))(.*))', re.UNICODE) """Table markup""" IGNORED_NAMESPACES = [ 'Wikipedia', 'Category', 'File', 'Portal', 'Template', @@ -186,13 +186,13 @@ def remove_markup(text, promote_remaining=True, simplify_links=True): if simplify_links: text = re.sub(RE_P6, '\\2', text) # simplify links, keep description only # remove table markup - text = text.replace("!!", "\n|") # leave only cell content(in table head) + text = text.replace("!!", "\n|") # each table head cell on a separate line text = text.replace("|-||", "\n|") # for cases where a cell is filled with '-' text = re.sub(RE_P12, '\n', text) # remove formatting lines text = text.replace('|||', '|\n|') # each table cell on a separate line(where |{{a|b}}||cell-content) text = text.replace('||', '\n|') # each table cell on a separate line - text = re.sub(RE_P13, '\n\\3', text) # leave only cell content - text = re.sub(RE_P17, '', text) # remove formatting lines + text = re.sub(RE_P13, '\n', text) # leave only cell content + text = re.sub(RE_P17, '\n', text) # remove formatting lines # remove empty mark-up text = text.replace('[]', '') diff --git a/gensim/test/test_corpora.py b/gensim/test/test_corpora.py index 200bb8a6ea..d8c8fe31c6 100644 --- a/gensim/test/test_corpora.py +++ b/gensim/test/test_corpora.py @@ -651,7 +651,7 @@ def test_removed_table_markup(self): """ enwiki_file = datapath('enwiki-table-markup.xml.bz2') corpus = self.corpus_class(enwiki_file) - texts = corpus.get_texts() + texts = corpus.get_texts() table_markup = ["style", "class", "border", "cellspacing", "cellpadding", "colspan", "rowspan"] for text in texts: for word in table_markup: From 770d661aa59218d27c92e5ffc824363963c4469f Mon Sep 17 00:00:00 2001 From: Menshikh Ivan Date: Thu, 15 Mar 2018 18:53:25 +0500 Subject: [PATCH 3/3] fix PEP8 --- gensim/corpora/wikicorpus.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gensim/corpora/wikicorpus.py b/gensim/corpora/wikicorpus.py index a20bc2ba4e..b7a18f02db 100644 --- a/gensim/corpora/wikicorpus.py +++ b/gensim/corpora/wikicorpus.py @@ -78,7 +78,11 @@ """Remove File and Image templates.""" RE_P16 = re.compile(r'\[{2}(.*?)\]{2}', re.UNICODE) """Capture interlinks text and article linked""" -RE_P17 = re.compile(r'(\n.{0,4}((bgcolor)|(\d{0,1}[ ]?colspan)|(rowspan)|(style=)|(class=)|(align=)|(scope=))(.*))|(^.{0,2}((bgcolor)|(\d{0,1}[ ]?colspan)|(rowspan)|(style=)|(class=)|(align=))(.*))', re.UNICODE) +RE_P17 = re.compile( + r'(\n.{0,4}((bgcolor)|(\d{0,1}[ ]?colspan)|(rowspan)|(style=)|(class=)|(align=)|(scope=))(.*))|' + '(^.{0,2}((bgcolor)|(\d{0,1}[ ]?colspan)|(rowspan)|(style=)|(class=)|(align=))(.*))', + re.UNICODE +) """Table markup""" IGNORED_NAMESPACES = [ 'Wikipedia', 'Category', 'File', 'Portal', 'Template',