forked from bfijalkowski/KWT-2024
Little push
This commit is contained in:
parent
054d45b9ed
commit
946ec47b20
@ -52,13 +52,45 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"execution_count": 10,
|
||||
"id": "german-dispute",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def sentence_split(text):\n",
|
||||
" return []"
|
||||
" segments = []\n",
|
||||
" start = 0\n",
|
||||
" i = 0\n",
|
||||
" n = len(text)\n",
|
||||
" while i < n:\n",
|
||||
" if text[i] == ' ' and i + 1 < n and text[i + 1].isupper():\n",
|
||||
" segments.append(text[start:i])\n",
|
||||
" start = i + 1\n",
|
||||
" i += 1\n",
|
||||
" segments.append(text[start:])\n",
|
||||
" return segments\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 12,
|
||||
"id": "adbae35b",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"['Dzien dobry,', 'CZy ten', 'TEKST zostanie poprawnie podzielony?']"
|
||||
]
|
||||
},
|
||||
"execution_count": 12,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"text = \"Dzien dobry, CZy ten TEKST zostanie poprawnie podzielony?\"\n",
|
||||
"sentence_split(text)"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -71,13 +103,44 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"execution_count": 13,
|
||||
"id": "064c2343",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import re\n",
|
||||
"import requests\n",
|
||||
"from bs4 import BeautifulSoup"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 14,
|
||||
"id": "guilty-morocco",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def sentence_split_enhanced(text):\n",
|
||||
" return []"
|
||||
"def fetch_page_content(url):\n",
|
||||
" response = requests.get(url)\n",
|
||||
" soup = BeautifulSoup(response.content, 'html.parser')\n",
|
||||
"\n",
|
||||
" for unwanted in soup([\"script\", \"style\"]):\n",
|
||||
" unwanted.decompose()\n",
|
||||
"\n",
|
||||
" page_text = soup.get_text()\n",
|
||||
"\n",
|
||||
" clean_text = re.sub(r\"\\s+\", \" \", page_text)\n",
|
||||
" return clean_text"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "7a2d689a",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"text = fetch_page_content('https://www.mountainjade.co.nz/pages/greenstone-meanings-and-designs/toki-adze')\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -187,15 +250,12 @@
|
||||
"metadata": {
|
||||
"author": "Rafał Jaworski",
|
||||
"email": "rjawor@amu.edu.pl",
|
||||
"lang": "pl",
|
||||
"subtitle": "11. Urównoleglanie",
|
||||
"title": "Komputerowe wspomaganie tłumaczenia",
|
||||
"year": "2021",
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"lang": "pl",
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
@ -206,8 +266,11 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.10"
|
||||
}
|
||||
"version": "3.11.9"
|
||||
},
|
||||
"subtitle": "11. Urównoleglanie",
|
||||
"title": "Komputerowe wspomaganie tłumaczenia",
|
||||
"year": "2021"
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
|
133
lab/lab_15.ipynb
133
lab/lab_15.ipynb
@ -62,11 +62,42 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "raw",
|
||||
"cell_type": "markdown",
|
||||
"id": "academic-crest",
|
||||
"metadata": {
|
||||
"vscode": {
|
||||
"languageId": "raw"
|
||||
}
|
||||
},
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "9020428a",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Collecting language_tool_python\n",
|
||||
" Downloading language_tool_python-2.8-py3-none-any.whl (35 kB)\n",
|
||||
"Requirement already satisfied: pip in /home/potato/.virtualenvs/praca/lib/python3.11/site-packages (from language_tool_python) (22.0.2)\n",
|
||||
"Requirement already satisfied: tqdm in /home/potato/.virtualenvs/praca/lib/python3.11/site-packages (from language_tool_python) (4.66.4)\n",
|
||||
"Requirement already satisfied: requests in /home/potato/.virtualenvs/praca/lib/python3.11/site-packages (from language_tool_python) (2.31.0)\n",
|
||||
"Requirement already satisfied: wheel in /home/potato/.virtualenvs/praca/lib/python3.11/site-packages (from language_tool_python) (0.37.1)\n",
|
||||
"Requirement already satisfied: idna<4,>=2.5 in /home/potato/.virtualenvs/praca/lib/python3.11/site-packages (from requests->language_tool_python) (3.7)\n",
|
||||
"Requirement already satisfied: urllib3<3,>=1.21.1 in /home/potato/.virtualenvs/praca/lib/python3.11/site-packages (from requests->language_tool_python) (2.2.1)\n",
|
||||
"Requirement already satisfied: certifi>=2017.4.17 in /home/potato/.virtualenvs/praca/lib/python3.11/site-packages (from requests->language_tool_python) (2024.2.2)\n",
|
||||
"Requirement already satisfied: charset-normalizer<4,>=2 in /home/potato/.virtualenvs/praca/lib/python3.11/site-packages (from requests->language_tool_python) (3.3.2)\n",
|
||||
"Installing collected packages: language_tool_python\n",
|
||||
"Successfully installed language_tool_python-2.8\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"pip3 install language_tool_python"
|
||||
"!pip install language_tool_python"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -79,16 +110,25 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"execution_count": 2,
|
||||
"id": "relative-anaheim",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stderr",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Downloading LanguageTool 6.4: 100%|██████████| 246M/246M [00:07<00:00, 34.5MB/s] \n",
|
||||
"Unzipping /tmp/tmp2yjlywpj.zip to /home/potato/.cache/language_tool_python.\n",
|
||||
"Downloaded https://www.languagetool.org/download/LanguageTool-6.4.zip to /home/potato/.cache/language_tool_python.\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"[Match({'ruleId': 'EN_A_VS_AN', 'message': 'Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.', 'replacements': ['an'], 'offsetInContext': 16, 'context': 'A sentence with a error in the Hitchhiker’s Guide tot he ...', 'offset': 16, 'errorLength': 1, 'category': 'MISC', 'ruleIssueType': 'misspelling', 'sentence': 'A sentence with a error in the Hitchhiker’s Guide tot he Galaxy'}),\n",
|
||||
" Match({'ruleId': 'TOT_HE', 'message': 'Did you mean “to the”?', 'replacements': ['to the'], 'offsetInContext': 43, 'context': '... with a error in the Hitchhiker’s Guide tot he Galaxy', 'offset': 50, 'errorLength': 6, 'category': 'TYPOS', 'ruleIssueType': 'misspelling', 'sentence': 'A sentence with a error in the Hitchhiker’s Guide tot he Galaxy'})]\n"
|
||||
"[Match({'ruleId': 'EN_A_VS_AN', 'message': 'Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.', 'replacements': ['an'], 'offsetInContext': 16, 'context': 'A sentence with a error in the Hitchhiker’s Guide tot he ...', 'offset': 16, 'errorLength': 1, 'category': 'MISC', 'ruleIssueType': 'misspelling', 'sentence': \"A sentence with a error in the Hitchhiker's Guide tot he Galaxy\"}),\n",
|
||||
" Match({'ruleId': 'TOT_HE', 'message': 'Did you mean “to the”?', 'replacements': ['to the'], 'offsetInContext': 43, 'context': '... with a error in the Hitchhiker’s Guide tot he Galaxy', 'offset': 50, 'errorLength': 6, 'category': 'TYPOS', 'ruleIssueType': 'misspelling', 'sentence': \"A sentence with a error in the Hitchhiker's Guide tot he Galaxy\"})]\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
@ -122,13 +162,86 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"execution_count": 3,
|
||||
"id": "sound-teaching",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"[Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"półkolonieróżne\"?', 'replacements': ['półkolonieróżne'], 'offsetInContext': 43, 'context': '...dorosłych Półkolonie Blog O nas Kontakt PółkolonieRóżne Jak wyglądają aktywności i warsztaty po...', 'offset': 316, 'errorLength': 15, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': '- Sky Blue Education Blog Półkolonie Kontakt O nas Programowanie Minecraft Python Tworzenie stron Języki obce Dla dzieci Dla dorosłych Programowanie Minecraft Python Tworzenie stron Języki obce Dla dzieci Dla dorosłych Półkolonie Blog O nas Kontakt PółkolonieRóżne Jak wyglądają aktywności i warsztaty podczas półkolonii Sky Blue?'}),\n",
|
||||
" Match({'ruleId': 'UPPERCASE_SENTENCE_START', 'message': 'To zdanie nie zaczyna się wielką literą', 'replacements': ['Zobacz'], 'offsetInContext': 43, 'context': '... warsztaty podczas półkolonii Sky Blue? zobacz także: Jak skutecznie wpłynąć na efekty...', 'offset': 398, 'errorLength': 6, 'category': 'CASING', 'ruleIssueType': 'typographical', 'sentence': 'zobacz także: Jak skutecznie wpłynąć na efektywność nauki u uczniów (osiem teorii motywacyjnych)?'}),\n",
|
||||
" Match({'ruleId': 'ZDANIA_ZLOZONE', 'message': 'W tym zdaniu złożonym brakuje przecinka lub spójnika między jednym czasownikiem („bierzemy”) a drugim („planując”).', 'replacements': [], 'offsetInContext': 43, 'context': '...wacyjnych)? Jest kilka elementów, które bierzemy pod uwagę planując aktywności dla dzieci. Po pierwsze i najważniejsze, szukamy fo...', 'offset': 524, 'errorLength': 50, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Jest kilka elementów, które bierzemy pod uwagę planując aktywności dla dzieci.'}),\n",
|
||||
" Match({'ruleId': 'ZDANIA_ZLOZONE', 'message': 'W tym zdaniu złożonym brakuje przecinka lub spójnika między jednym czasownikiem („widział”) a drugim („jest”).', 'replacements': [], 'offsetInContext': 43, 'context': '...wo znalezienie seansu, którego nikt nie widział jest w zasadzie niemożliwe. Często rezygnujemy z różnych pomysłów, ...', 'offset': 919, 'errorLength': 35, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Dodatkowo znalezienie seansu, którego nikt nie widział jest w zasadzie niemożliwe.'}),\n",
|
||||
" Match({'ruleId': 'ZDANIA_ZLOZONE', 'message': 'W tym zdaniu złożonym brakuje przecinka lub spójnika między jednym czasownikiem („planując”) a drugim („tworzymy”).', 'replacements': [], 'offsetInContext': 43, 'context': '...z będą mieć z niego frajdę. Po trzecie, planując każdy dzień tworzymy odpowiedni balans pomiędzy rodzajami warsztatów. Te wymagające komputera mieszamy z krea...', 'offset': 1856, 'errorLength': 78, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Po trzecie, planując każdy dzień tworzymy odpowiedni balans pomiędzy rodzajami warsztatów.'}),\n",
|
||||
" Match({'ruleId': 'ZDANIA_ZLOZONE', 'message': 'W tym zdaniu złożonym brakuje przecinka lub spójnika między jednym czasownikiem („Układając”) a drugim („dbamy”).', 'replacements': [], 'offsetInContext': 43, 'context': '... z kreatywnymi i manualnymi wyzwaniami. Układając szczegółowy harmonogram dbamy o odpowiednią dynamikę, propocję i różnorodność.Po czwarte, por...', 'offset': 2007, 'errorLength': 63, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Układając szczegółowy harmonogram dbamy o odpowiednią dynamikę, propocję i różnorodność.'}),\n",
|
||||
" Match({'ruleId': 'POZA_TYM', 'message': 'Prawdopodobnie zbędny przecinek. Poprawnie: \"Po czwarte poruszamy\".', 'replacements': ['Po czwarte poruszamy'], 'offsetInContext': 43, 'context': '...ednią dynamikę, propocję i różnorodność.Po czwarte, poruszamy się w świecie nowych technologii. Z jed...', 'offset': 2095, 'errorLength': 21, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Po czwarte, poruszamy się w świecie nowych technologii.'}),\n",
|
||||
" Match({'ruleId': 'POZA_TYM', 'message': 'Prawdopodobnie zbędny przecinek. Poprawnie: \"Poza rzeczamy typowo technologicznymi dodatkowo\".', 'replacements': ['Poza rzeczamy typowo technologicznymi dodatkowo'], 'offsetInContext': 43, 'context': '...o wielu aktywności, które organizujemy. Poza rzeczamy typowo technologicznymi, dodatkowo eksperymentujemy, rozwiązujemy zagadki,...', 'offset': 2428, 'errorLength': 48, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Poza rzeczamy typowo technologicznymi, dodatkowo eksperymentujemy, rozwiązujemy zagadki, malujemy, kleimy, wycinamy, majsterkujemy i oczywiście brudzimy się.'}),\n",
|
||||
" Match({'ruleId': 'SIE_SENT_END', 'message': 'Zaimek „się” nie powinien znajdować się na końcu zdania.', 'replacements': [], 'offsetInContext': 43, 'context': '...my, majsterkujemy i oczywiście brudzimy się. Nie ukrywamy, że oprócz bezpieczeństwa...', 'offset': 2581, 'errorLength': 3, 'category': 'WORD_ORDER', 'ruleIssueType': 'style', 'sentence': 'Poza rzeczamy typowo technologicznymi, dodatkowo eksperymentujemy, rozwiązujemy zagadki, malujemy, kleimy, wycinamy, majsterkujemy i oczywiście brudzimy się.'}),\n",
|
||||
" Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Półkolonie'], 'offsetInContext': 43, 'context': '...wodniego i wprowadzają wyjątkowy klimat.Półkolonie, które organizujemy w Oleśnicy, Kiełczo...', 'offset': 3019, 'errorLength': 10, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Półkolonie, które organizujemy w Oleśnicy, Kiełczowie i Wrocławiu są skierowane przede wszystkim do rodziców, którzy szukają czegoś więcej niż przechowania dzieci.'}),\n",
|
||||
" Match({'ruleId': 'SKROTOWCE_BEZ_DYWIZU', 'message': 'Prawdopodobny błąd zapisu odmiany; skrótowce odmieniamy z dywizem:\"KATEGORIEB-log\".', 'replacements': ['KATEGORIEB-log'], 'offsetInContext': 43, 'context': '...ducation Rynek 48/111, 56-400 Oleśnica #KATEGORIEBlog Półkolonie Kontakt O nas #OFERTAPółkolo...', 'offset': 3453, 'errorLength': 13, 'category': 'SPELLING', 'ruleIssueType': 'misspelling', 'sentence': 'ZAPISY NA PÓŁKOLONIE 727 936 890 biuro@skyblue.education Rynek 48/111, 56-400 Oleśnica #KATEGORIEBlog Półkolonie Kontakt O nas #OFERTAPółkolonie Programowanie – Minecraft Języki obce dla dorosłych Angielski dla dzieci #BEZPIECZEŃSTWORegulamin Polityka prywatności © SKY BLUE 2020.'}),\n",
|
||||
" Match({'ruleId': 'SKROTOWCE_BEZ_DYWIZU', 'message': 'Prawdopodobny błąd zapisu odmiany; skrótowce odmieniamy z dywizem:\"OFERTAP-ółkolonie\".', 'replacements': ['OFERTAP-ółkolonie'], 'offsetInContext': 43, 'context': '...KATEGORIEBlog Półkolonie Kontakt O nas #OFERTAPółkolonie Programowanie – Minecraft Języki obce d...', 'offset': 3493, 'errorLength': 16, 'category': 'SPELLING', 'ruleIssueType': 'misspelling', 'sentence': 'ZAPISY NA PÓŁKOLONIE 727 936 890 biuro@skyblue.education Rynek 48/111, 56-400 Oleśnica #KATEGORIEBlog Półkolonie Kontakt O nas #OFERTAPółkolonie Programowanie – Minecraft Języki obce dla dorosłych Angielski dla dzieci #BEZPIECZEŃSTWORegulamin Polityka prywatności © SKY BLUE 2020.'}),\n",
|
||||
" Match({'ruleId': 'SKROTOWCE_BEZ_DYWIZU', 'message': 'Prawdopodobny błąd zapisu odmiany; skrótowce odmieniamy z dywizem:\"BEZPIECZEŃSTWOR-egulamin\".', 'replacements': ['BEZPIECZEŃSTWOR-egulamin'], 'offsetInContext': 43, 'context': '...bce dla dorosłych Angielski dla dzieci #BEZPIECZEŃSTWORegulamin Polityka prywatności © SKY BLUE 2020. A...', 'offset': 3584, 'errorLength': 23, 'category': 'SPELLING', 'ruleIssueType': 'misspelling', 'sentence': 'ZAPISY NA PÓŁKOLONIE 727 936 890 biuro@skyblue.education Rynek 48/111, 56-400 Oleśnica #KATEGORIEBlog Półkolonie Kontakt O nas #OFERTAPółkolonie Programowanie – Minecraft Języki obce dla dorosłych Angielski dla dzieci #BEZPIECZEŃSTWORegulamin Polityka prywatności © SKY BLUE 2020.'})]\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"półkolonieróżne\"?', 'replacements': ['półkolonieróżne'], 'offsetInContext': 43, 'context': '...dorosłych Półkolonie Blog O nas Kontakt PółkolonieRóżne Jak wyglądają aktywności i warsztaty po...', 'offset': 316, 'errorLength': 15, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': '- Sky Blue Education Blog Półkolonie Kontakt O nas Programowanie Minecraft Python Tworzenie stron Języki obce Dla dzieci Dla dorosłych Programowanie Minecraft Python Tworzenie stron Języki obce Dla dzieci Dla dorosłych Półkolonie Blog O nas Kontakt PółkolonieRóżne Jak wyglądają aktywności i warsztaty podczas półkolonii Sky Blue?'}),\n",
|
||||
" Match({'ruleId': 'UPPERCASE_SENTENCE_START', 'message': 'To zdanie nie zaczyna się wielką literą', 'replacements': ['Zobacz'], 'offsetInContext': 43, 'context': '... warsztaty podczas półkolonii Sky Blue? zobacz także: Jak skutecznie wpłynąć na efekty...', 'offset': 398, 'errorLength': 6, 'category': 'CASING', 'ruleIssueType': 'typographical', 'sentence': 'zobacz także: Jak skutecznie wpłynąć na efektywność nauki u uczniów (osiem teorii motywacyjnych)?'}),\n",
|
||||
" Match({'ruleId': 'ZDANIA_ZLOZONE', 'message': 'W tym zdaniu złożonym brakuje przecinka lub spójnika między jednym czasownikiem („bierzemy”) a drugim („planując”).', 'replacements': [], 'offsetInContext': 43, 'context': '...wacyjnych)? Jest kilka elementów, które bierzemy pod uwagę planując aktywności dla dzieci. Po pierwsze i najważniejsze, szukamy fo...', 'offset': 524, 'errorLength': 50, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Jest kilka elementów, które bierzemy pod uwagę planując aktywności dla dzieci.'}),\n",
|
||||
" Match({'ruleId': 'ZDANIA_ZLOZONE', 'message': 'W tym zdaniu złożonym brakuje przecinka lub spójnika między jednym czasownikiem („widział”) a drugim („jest”).', 'replacements': [], 'offsetInContext': 43, 'context': '...wo znalezienie seansu, którego nikt nie widział jest w zasadzie niemożliwe. Często rezygnujemy z różnych pomysłów, ...', 'offset': 919, 'errorLength': 35, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Dodatkowo znalezienie seansu, którego nikt nie widział jest w zasadzie niemożliwe.'}),\n",
|
||||
" Match({'ruleId': 'ZDANIA_ZLOZONE', 'message': 'W tym zdaniu złożonym brakuje przecinka lub spójnika między jednym czasownikiem („planując”) a drugim („tworzymy”).', 'replacements': [], 'offsetInContext': 43, 'context': '...z będą mieć z niego frajdę. Po trzecie, planując każdy dzień tworzymy odpowiedni balans pomiędzy rodzajami warsztatów. Te wymagające komputera mieszamy z krea...', 'offset': 1856, 'errorLength': 78, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Po trzecie, planując każdy dzień tworzymy odpowiedni balans pomiędzy rodzajami warsztatów.'}),\n",
|
||||
" Match({'ruleId': 'ZDANIA_ZLOZONE', 'message': 'W tym zdaniu złożonym brakuje przecinka lub spójnika między jednym czasownikiem („Układając”) a drugim („dbamy”).', 'replacements': [], 'offsetInContext': 43, 'context': '... z kreatywnymi i manualnymi wyzwaniami. Układając szczegółowy harmonogram dbamy o odpowiednią dynamikę, propocję i różnorodność.Po czwarte, por...', 'offset': 2007, 'errorLength': 63, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Układając szczegółowy harmonogram dbamy o odpowiednią dynamikę, propocję i różnorodność.'}),\n",
|
||||
" Match({'ruleId': 'POZA_TYM', 'message': 'Prawdopodobnie zbędny przecinek. Poprawnie: \"Po czwarte poruszamy\".', 'replacements': ['Po czwarte poruszamy'], 'offsetInContext': 43, 'context': '...ednią dynamikę, propocję i różnorodność.Po czwarte, poruszamy się w świecie nowych technologii. Z jed...', 'offset': 2095, 'errorLength': 21, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Po czwarte, poruszamy się w świecie nowych technologii.'}),\n",
|
||||
" Match({'ruleId': 'POZA_TYM', 'message': 'Prawdopodobnie zbędny przecinek. Poprawnie: \"Poza rzeczamy typowo technologicznymi dodatkowo\".', 'replacements': ['Poza rzeczamy typowo technologicznymi dodatkowo'], 'offsetInContext': 43, 'context': '...o wielu aktywności, które organizujemy. Poza rzeczamy typowo technologicznymi, dodatkowo eksperymentujemy, rozwiązujemy zagadki,...', 'offset': 2428, 'errorLength': 48, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Poza rzeczamy typowo technologicznymi, dodatkowo eksperymentujemy, rozwiązujemy zagadki, malujemy, kleimy, wycinamy, majsterkujemy i oczywiście brudzimy się.'}),\n",
|
||||
" Match({'ruleId': 'SIE_SENT_END', 'message': 'Zaimek „się” nie powinien znajdować się na końcu zdania.', 'replacements': [], 'offsetInContext': 43, 'context': '...my, majsterkujemy i oczywiście brudzimy się. Nie ukrywamy, że oprócz bezpieczeństwa...', 'offset': 2581, 'errorLength': 3, 'category': 'WORD_ORDER', 'ruleIssueType': 'style', 'sentence': 'Poza rzeczamy typowo technologicznymi, dodatkowo eksperymentujemy, rozwiązujemy zagadki, malujemy, kleimy, wycinamy, majsterkujemy i oczywiście brudzimy się.'}),\n",
|
||||
" Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Półkolonie'], 'offsetInContext': 43, 'context': '...wodniego i wprowadzają wyjątkowy klimat.Półkolonie, które organizujemy w Oleśnicy, Kiełczo...', 'offset': 3019, 'errorLength': 10, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Półkolonie, które organizujemy w Oleśnicy, Kiełczowie i Wrocławiu są skierowane przede wszystkim do rodziców, którzy szukają czegoś więcej niż przechowania dzieci.'}),\n",
|
||||
" Match({'ruleId': 'SKROTOWCE_BEZ_DYWIZU', 'message': 'Prawdopodobny błąd zapisu odmiany; skrótowce odmieniamy z dywizem:\"KATEGORIEB-log\".', 'replacements': ['KATEGORIEB-log'], 'offsetInContext': 43, 'context': '...ducation Rynek 48/111, 56-400 Oleśnica #KATEGORIEBlog Półkolonie Kontakt O nas #OFERTAPółkolo...', 'offset': 3453, 'errorLength': 13, 'category': 'SPELLING', 'ruleIssueType': 'misspelling', 'sentence': 'ZAPISY NA PÓŁKOLONIE 727 936 890 biuro@skyblue.education Rynek 48/111, 56-400 Oleśnica #KATEGORIEBlog Półkolonie Kontakt O nas #OFERTAPółkolonie Programowanie – Minecraft Języki obce dla dorosłych Angielski dla dzieci #BEZPIECZEŃSTWORegulamin Polityka prywatności © SKY BLUE 2020.'}),\n",
|
||||
" Match({'ruleId': 'SKROTOWCE_BEZ_DYWIZU', 'message': 'Prawdopodobny błąd zapisu odmiany; skrótowce odmieniamy z dywizem:\"OFERTAP-ółkolonie\".', 'replacements': ['OFERTAP-ółkolonie'], 'offsetInContext': 43, 'context': '...KATEGORIEBlog Półkolonie Kontakt O nas #OFERTAPółkolonie Programowanie – Minecraft Języki obce d...', 'offset': 3493, 'errorLength': 16, 'category': 'SPELLING', 'ruleIssueType': 'misspelling', 'sentence': 'ZAPISY NA PÓŁKOLONIE 727 936 890 biuro@skyblue.education Rynek 48/111, 56-400 Oleśnica #KATEGORIEBlog Półkolonie Kontakt O nas #OFERTAPółkolonie Programowanie – Minecraft Języki obce dla dorosłych Angielski dla dzieci #BEZPIECZEŃSTWORegulamin Polityka prywatności © SKY BLUE 2020.'}),\n",
|
||||
" Match({'ruleId': 'SKROTOWCE_BEZ_DYWIZU', 'message': 'Prawdopodobny błąd zapisu odmiany; skrótowce odmieniamy z dywizem:\"BEZPIECZEŃSTWOR-egulamin\".', 'replacements': ['BEZPIECZEŃSTWOR-egulamin'], 'offsetInContext': 43, 'context': '...bce dla dorosłych Angielski dla dzieci #BEZPIECZEŃSTWORegulamin Polityka prywatności © SKY BLUE 2020. A...', 'offset': 3584, 'errorLength': 23, 'category': 'SPELLING', 'ruleIssueType': 'misspelling', 'sentence': 'ZAPISY NA PÓŁKOLONIE 727 936 890 biuro@skyblue.education Rynek 48/111, 56-400 Oleśnica #KATEGORIEBlog Półkolonie Kontakt O nas #OFERTAPółkolonie Programowanie – Minecraft Języki obce dla dorosłych Angielski dla dzieci #BEZPIECZEŃSTWORegulamin Polityka prywatności © SKY BLUE 2020.'})]"
|
||||
]
|
||||
},
|
||||
"execution_count": 3,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"def find_errors(website_url):\n",
|
||||
" return []"
|
||||
"import re\n",
|
||||
"import requests\n",
|
||||
"from bs4 import BeautifulSoup\n",
|
||||
"import language_tool_python\n",
|
||||
"import pprint\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"def fetch_page_content(url):\n",
|
||||
" response = requests.get(url)\n",
|
||||
" soup = BeautifulSoup(response.content, 'html.parser')\n",
|
||||
"\n",
|
||||
" for unwanted in soup([\"script\", \"style\"]):\n",
|
||||
" unwanted.decompose()\n",
|
||||
"\n",
|
||||
" page_text = soup.get_text()\n",
|
||||
"\n",
|
||||
" clean_text = re.sub(r\"\\s+\", \" \", page_text)\n",
|
||||
" return clean_text\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"def identify_language_errors(site_url):\n",
|
||||
" issues = []\n",
|
||||
" page_content = fetch_page_content(site_url)\n",
|
||||
" language_tool = language_tool_python.LanguageTool('en-NZ')\n",
|
||||
" matches = language_tool.check(page_content)\n",
|
||||
" for match in matches:\n",
|
||||
" if match.ruleId != 'MORFOLOGIK_RULE_EN_US':\n",
|
||||
" issues.append(match)\n",
|
||||
"\n",
|
||||
" pprint.pprint(issues)\n",
|
||||
" return issues\n",
|
||||
"\n",
|
||||
"identify_language_errors('https://www.mountainjade.co.nz/pages/greenstone-meanings-and-designs/toki-adze')\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -170,7 +283,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.10"
|
||||
"version": "3.11.9"
|
||||
},
|
||||
"subtitle": "15. Korekta gramatyczna",
|
||||
"title": "Komputerowe wspomaganie tłumaczenia",
|
||||
|
Loading…
Reference in New Issue
Block a user