Little push

This commit is contained in:
bpietrzak 2024-06-20 19:58:19 +02:00
parent 054d45b9ed
commit 946ec47b20
2 changed files with 197 additions and 21 deletions

View File

@ -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

View File

@ -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 Hitchhikers Guide tot he ...', 'offset': 16, 'errorLength': 1, 'category': 'MISC', 'ruleIssueType': 'misspelling', 'sentence': 'A sentence with a error in the Hitchhikers 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 Hitchhikers Guide tot he Galaxy', 'offset': 50, 'errorLength': 6, 'category': 'TYPOS', 'ruleIssueType': 'misspelling', 'sentence': 'A sentence with a error in the Hitchhikers 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 Hitchhikers 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 Hitchhikers 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",