Ile razy w bazie danych w tabeli words w kolumnie value występuje wyraz wirus?
Ile razy w tekście występuje wyraz wirus?
a = 1.00001
if(a == 1):
print("Zmienna ma wartość 1")
if(abs(a - 1) < 1e-3):
print("Zmienna ma wartość zbliżoną do 1")
np. Ruby v. 1.9.3 (i wiele późniejszych wersji)
1.9.3-p551 :001 > "Ł".downcase
=> "Ł"
1.9.3-p551 :002 >
Ruby 2.7.0
2.7.0 :001 > "Ł".downcase
=> "ł"
2.7.0 :002 >
Przykłady wieloznaczności morfologicznej
from morfeusz2 import Morfeusz
import pandas as pd
morf = Morfeusz()
forms = morf.generate("wirus")
pd.DataFrame(forms, columns=['inflected form', 'base form', 'tags', 'categories', 'misc'])


skąd pochodzą teksty?
Aa
Ile razy w tekście występuje wyrażenie wirusowe zapalenie wątroby?

Popularne rodzaje kodowania znaków (z uwzględnieniem języka polskiego):

!cat iso-8859-2.txt
import codecs
with codecs.open("iso-8859-2.txt", 'r', 'iso-8859-2') as f:
for line in f:
print(line)
Unikod (ang. Unicode) – komputerowy zestaw znaków mający w zamierzeniu obejmować wszystkie pisma używane na świecie.
UTF-8 (ang. 8-bit Unicode Transformation Format) – system kodowania Unicode, wykorzystujący od 1 do 4 bajtów do zakodowania pojedynczego znaku, w pełni kompatybilny z ASCII.
UTF-16 (ang. 16-bit Unicode Transformation Format) – jeden ze sposobów kodowania znaków standardu Unicode (2 lub 4 bajty, <= U+10000 kodowane na 2 bajtach).
UTF-32 (ang. 32-bit unicode transformation format) – jeden ze sposobów kodowania znaków standardu Unicode (zawsze 4 bajty).
(Źródło: Wikipedia)
| Wersja | Data | Publikacja | Oznaczenie | Liczba zestawów znaków | Liczba znaków | Liczba nowych znaków |
|---|---|---|---|---|---|---|
| 13.0 | March 2020 | ISBN 978-1-936213-26-9 | ISO/IEC 10646:2020[51] | 154 | 143,859 | 5,930 added) |


from unidecode import unidecode
print(unidecode("Kaplica Sykstyńska"))
print(unidecode("Сикстинская капелла")) # cyrylica
print(unidecode("Καπέλα Σιστίνα")) # grecki
print(unidecode("西斯汀小堂")) # chiński
print(unidecode("Սիքստինյան կապելլա")) # ormiański
Kaplica Sykstynska Sikstinskaia kapella Kapela Sistina Xi Si Ting Xiao Tang Sik`stinyan kapella
import demoji
#demoji.download_codes()
demoji.findall("""
#startspreadingthenews yankees win great start by 🎅🏾 going 5strong innings with 5k’s🔥 🐂 solo homerun 🌋🌋
with 2 solo homeruns and👹 3run homerun… 🤡 🚣🏼 👨🏽⚖️ with rbi’s … 🔥🔥
🇲🇽 and 🇳🇮 to close the game🔥🔥!!!….
WHAT A GAME!!..
""")
Minimalna liczba operacji:
pojedynczego znaku, dzięki którym łańcych S1 może zostać przekształcony w łańcuch S2.
|
|
import re
pattern = re.compile('wirus')
texts = ["wrius", "wirrus", "wirs"]
for text in texts:
match_data = pattern.search(text)
if(match_data):
print(match_data[0])
import regex
pattern = regex.compile(r'(wirus\b){e<=1}')
texts = ["virus", "wirrus", "wirusa"]
for text in texts:
match_data = pattern.search(text)
if(match_data):
print(match_data[0])
virus wirrus wirusa
import re
pattern = re.compile('łódź', re.I)
text = "Łódź to stolica województwa łódzkiego"
if(pattern.search(text)):
print("Wyrażenie zostało dopasowane")
Wyrażenie zostało dopasowane
tab = ["Poznań", "Łódź", "Andrychów"]
sorted(tab)
['Andrychów', 'Poznań', 'Łódź']
pattern = re.compile(r'\bwirus(\w*)',)
texts = ["a _wirusów", "wirusowe zapalenie wątroby", "wirusy są groźne", "koronawirus"]
for text in texts:
match_data = pattern.search(text)
if(match_data):
print(match_data[0])
wirusowe wirusy
* – (kwantyfikator) zero lub więcej wystąpień() – grupowanie wyrażeń dla kwantyfikatorów, alternatywy, dopasowań wstecznych| – alternatywa – jedna opcja spośród wielu* – zero lub więcej wystąpień (to samo co wyżej)+ – jedno lub więcej wystąpień? – zero lub jedno wystąpienie^ – początek linii$ – koniec linii\b – granica słowa\< – początek słowa\> – koniec słowa[] – jeden ze znaków znajdujących się wewnątrz nawiasów^ – pojawiając się na początku w kontekście klasy znaków powoduje jej zanegowaniea-z – zakres znaków (tylko wew. nawiasów kwadratowych)\w – znak będący literą, cyfrą lub podkreśleniem\s – znak będący białą spacją (spacja, tabulator, koniec linii, etc.)\d – cyfra. – dowolny znak (zazwyczaj – niebędący końcem linii)\p{L} - litery z dowolnego alfabetu (np. a, ą, ć, ü, カ)\p{Ll} - mała litera z dowolnego alfabetu\p{Lu} - wielka litera z dowolnego alfabetu\X - dowonly znak Unicode (jak . ale automatycznie uwzględnia znaki przejścia do nowej linii)(\w+)(?= ma kota) dopasuje się do łańcucha Ala ma kota, ale dopasowanie obejmie tylko słowo Ala.(?<!starych )(zł) dopasuje się do łańcucha 10 złotych ale nie do łańcucha 10 starych złotych.import re
text = "aaa"
print(re.findall("aa", text))
print(re.findall("a(?=a)", text))
['aa'] ['a', 'a']
text1 = "New York"
text2 = "Yorkshire"
print(re.findall("(?<!New )York", text1))
print(re.findall("(?<!New )York", text2))
[] ['York']
re - standardowa biblioteka - https://docs.python.org/3/library/re.htmlpip install regex - biblioteka instalowana osobno - https://pypi.org/project/regex//a.*//a.*/