spaCy is an advanced modern library for Natural Language Processing developed by Matthew Honnibal and Ines Montani. This tutorial is a complete guide to learn how to use spaCy for various tasks.
Overview
1. Introduction
The Doc object
2. Tokenization with spaCy
3. Text-Preprocessing with spaCy
4. Lemmatization
5. Strings to Hashes
6. Lexical attributes of spaCy
7. Detecting Email Addresses
8. Part of Speech analysis with spaCy
9. How POS tagging helps you in dealing with text based problems.
10. Named Entity Recognition
11. NER Application 1: Extracting brand names with Named Entity Recognition
12. NER Application 2: Automatically Masking Entities
13. Rule based Matching
Token Matcher
Phrase Matcher
Entity Ruler
14. Word Vectors and similarity
15. Merging and Splitting Tokens with retokenize
16. spaCy pipelines
17. Methods for Efficient processing
18. Creating custom pipeline components
19. Related Posts
1. Introduction
spaCy is an advanced modern library for Natural Language Processing developed by Matthew Honnibal and Ines Montani. It is designed to be industrial grade but open source.
# !pip install -U spacy
import spacy
spaCy comes with pretrained NLP models that can perform most common NLP tasks, such as tokenization, parts of speech (POS) tagging, named entity recognition (NER), lemmatization, transforming to word vectors etc.
If you are dealing with a particular language, you can load the spacy model specific to the language using spacy.load() function.
# Load small english model: https://spacy.io/models
nlp=spacy.load("en_core_web_sm")
nlp
#> spacy.lang.en.English at 0x7fd40c2eec50
This returns a Language object that comes ready with multiple built-in capabilities.
It’s a pretty long list. Time to grab a cup of coffee!
The Doc object
Now, let us say you have your text data in a string. What can be done to understand the structure of the text?
First, call the loaded nlp object on the text. It should return a processed Doc object.
# Parse text through the `nlp` model
my_text = """The economic situation of the country is on edge , as the stock
market crashed causing loss of millions. Citizens who had their main investment
in the share-market are facing a great loss. Many companies might lay off
thousands of people to reduce labor cost"""
my_doc = nlp(my_text)
type(my_doc)
#> spacy.tokens.doc.Doc
The output is a Doc object.
But, what exactly is a Doc object ?
It is a sequence of tokens that contains not just the original text but all the results produced by the spaCy model after processing the text. Useful information such as the lemma of the text, whether it is a stop word or not, named entities, the word vector of the text and so on are pre-computed and readily stored in the Doc object.
The good thing is that you have complete control on what information needs to be pre-computed and customized. We will see all of that shortly.
Also, though the text gets split into tokens, no information of the original text is actually lost.
What is a Token?
Tokens are individual text entities that make up the text. Typically a token can be the words, punctuation, spaces, etc.
2. Tokenization with spaCy
What is Tokenization?
Tokenization is the process of converting a text into smaller sub-texts, based on certain predefined rules. For example, sentences are tokenized to words (and punctuation optionally). And paragraphs into sentences, depending on the context.
This is typically the first step for NLP tasks like text classification, sentiment analysis, etc.
Each token in spacy has different attributes that tell us a great deal of information.
Such as, if the token is a punctuation, what part-of-speech (POS) is it, what is the lemma of the word etc. This article will cover everything from A-Z.
Let’s see the token texts on my_doc. The string which the token represents can be accessed through the token.text attribute.
# Printing the tokens of a doc
for token in my_doc:
print(token.text)
The
economic
situation
of
the
country
is
on
edge
...(truncated)...
The above tokens contain punctuation and common words like “a”, ” the”, “was”, etc. These do not add any value to the meaning of your text. They are called stop words.
Let’s clean it up.
3. Text-Preprocessing with spaCy
As mentioned in the last section, there is ‘noise’ in the tokens. The words such as ‘the’, ‘was’, ‘it’ etc are very common and are referred as ‘stop words’.
Besides, you have punctuation like commas, brackets, full stop and some extra white spaces too. The process of removing noise from the doc is called Text Cleaning or Preprocessing.
What is the need for Text Preprocessing ?
The outcome of the NLP task you perform, be it classification, finding sentiments, topic modeling etc, the quality of the output depends heavily on the quality of the input text used.
Stop words and punctuation usually (not always) don’t add value to the meaning of the text and can potentially impact the outcome. To avoid this, its might make sense to remove them and clean the text of unwanted characters can reduce the size of the corpus.
How to identify and remove the stopwords and punctuation?
The tokens in spacy have attributes which will help you identify if it is a stop word or not.
The token.is_stop attribute tells you that. Likewise, token.is_punct and token.is_space tell you if a token is a punctuation and white space respectively.
# Printing tokens and boolean values stored in different attributes
for token in my_doc:
print(token.text,'--',token.is_stop,'---',token.is_punct)
The -- True --- False
economic -- False --- False
situation -- False --- False
of -- True --- False
the -- True --- False
country -- False --- False
is -- True --- False
on -- True --- False
edge -- False --- False
, -- False --- True
as -- True --- False
the -- True --- False
...(truncated)...
Using this information, let’s remove the stopwords and punctuations.
# Removing StopWords and punctuations
my_doc_cleaned = [token for token in my_doc if not token.is_stop and not token.is_punct]
for token in my_doc_cleaned:
print(token.text)
economic
situation
country
edge
stock
market
crashed
causing
loss
millions
...(truncated)...
You can now see that the cleaned doc has only tokens that contribute to meaning in some way.
Also , the computational costs decreases by a great amount due to reduce in the number of tokens. In order to grasp the effect of Preprocessing on large text data , you can excecute the below code
# Reading a huge text data on robotics into a spacy doc
robotics_data= """Robotics is an interdisciplinary research area at the interface of computer science and engineering. Robotics involvesdesign, construction, operation, and use of robots. The goal of robotics is to design intelligent machines that can help and assist humans in their day-to-day lives and keep everyone safe. Robotics draws on the achievement of information engineering, computer engineering, mechanical engineering, electronic engineering and others.Robotics develops machines that can substitute for humans and replicate human actions. Robots can be used in many situations and for lots of purposes, but today many are used in dangerous environments(including inspection of radioactive materials, bomb detection and deactivation), manufacturing processes, or where humans cannot survive (e.g. in space, underwater, in high heat, and clean up and containment of hazardousmaterials and radiation). Robots can take on any form but some are made to resemble humans in appearance. This is said to help in the acceptance of a robot in
certain replicative behaviors usually performed by people. Such robots attempt to replicate walking, lifting, speech, cognition, or any other human activity. Many of todays robots are inspired by nature, contributing to the field of bio-inspired
robotics.The concept of creating machines that can operate autonomously dates back to classical times, but research into the functionality and potential uses of robots did not grow substantially until the 20th century. Throughout history, it has been frequently assumed by various scholars, inventors, engineers, and technicians that robots will one day be able to mimic human behavior and manage tasks in a human-like fashion. Today, robotics is a rapidly growing field, as technological advances continue; researching, designing, and building new robots serve various practical purposes, whether domestically, commercially, or militarily. Many robots are built to do jobs that are hazardous to people, such as defusing bombs, finding survivors in unstable ruins, and exploring mines and shipwrecks. Robotics is also used in STEM (science, technology, engineering, and mathematics) as a teaching aid. The advent of nanorobots, microscopic robots that can be injected into the human body, could revolutionize medicine and human health.Robotics is a branch of engineering that involves the conception, design, manufacture, and operation of robots. This field overlaps with computer engineering, computer science (especially artificial intelligence), electronics, mechatronics, nanotechnology and bioengineering.The word robotics was derived from the word robot, which was introduced to the public by Czech writer Karel Capek in his play R.U.R. (Rossums Universal Robots), whichwas published in 1920. The word robot comes from the Slavic word robota, which means slave/servant. The play begins in a factory that makes artificial people called robots, creatures who can be mistaken for humans – very similar to the modern ideas of androids. Karel Capek himself did not coin the word. He wrote a short letter in reference to an etymology in the
Oxford English Dictionary in which he named his brother Josef Capek as its actual
originator.According to the Oxford English Dictionary, the word robotics was first
used in print by Isaac Asimov, in his science fiction short story "Liar!",
published in May 1941 in Astounding Science Fiction. Asimov was unaware that he
was coining the term since the science and technology of electrical devices is
electronics, he assumed robotics already referred to the science and technology
of robots. In some of Asimovs other works, he states that the first use of the
word robotics was in his short story Runaround (Astounding Science Fiction, March
1942) where he introduced his concept of The Three Laws of Robotics. However,
the original publication of "Liar!" predates that of "Runaround" by ten months,
so the former is generally cited as the words origin.There are many types of robots;
they are used in many different environments and for many different uses. Although
being very diverse in application and form, they all share three basic similarities
when it comes to their construction:Robots all have some kind of mechanical construction, a frame, form or shape designed to achieve a particular task. For example, a robot designed to travel across heavy dirt or mud, might use caterpillar tracks. The mechanical aspect is mostly the creators solution to completing the assigned task and dealing with the physics of the environment around it. Form follows function.Robots have electrical components which power and control the machinery. For example, the robot with caterpillar tracks would need some kind of power to move the tracker treads. That power comes in the form of electricity, which will have to travel through a wire and originate from a battery, a basic electrical circuit. Even petrol powered machines that get their power mainly from petrol still require an electric current to start the combustion process which is why most petrol powered machines like cars, have batteries. The electrical aspect of robots is used for movement (through motors), sensing (where electrical signals are used to measure things like heat, sound, position, and energy status) and operation (robots need some level of electrical energy supplied to their motors and sensors in order to activate and perform basic operations) All robots contain some level of computer programming code. A program is how a robot decides when or how to do something. In the caterpillar track example, a robot that needs to move across a muddy road may have the correct mechanical construction and receive the correct amount of power from its battery, but would not go anywhere without a program telling it to move. Programs are the core essence of a robot, it could have excellent mechanical and electrical construction, but if its program is poorly constructed its performance will be very poor (or it may not perform at all). There are three different types of robotic programs: remote control, artificial intelligence and hybrid. A robot with remote control programing has a preexisting set of commands that it will only perform if and when it receives a signal from a control source, typically a human being with a remote control. It is perhaps more appropriate to view devices controlled primarily by human commands as falling in the discipline of automation rather than robotics. Robots that use artificial intelligence interact with their environment on their own without a control source, and can determine reactions to objects and problems they encounter using their preexisting programming. Hybrid is a form of programming that incorporates both AI and RC functions.As more and more robots are designed for specific tasks this method of classification becomes more relevant. For example, many robots are designed for assembly work, which may not be readily adaptable for other applications. They are termed as "assembly robots". For seam welding, some suppliers provide complete welding systems with the robot i.e. the welding equipment along with other material handling facilities like turntables, etc. as an integrated unit. Such an integrated robotic system is called a "welding robot" even though its discrete manipulator unit could be adapted to a variety of tasks. Some robots are specifically designed for heavy load manipulation, and are labeled as "heavy-duty robots".one or two wheels. These can have certain advantages such as greater efficiency and reduced parts, as well as allowing a robot to navigate in confined places that a four-wheeled robot would not be able to.Two-wheeled balancing robots Balancing robots generally use a gyroscope to detect how much a robot is falling and then drive the wheels proportionally in the same direction, to counterbalance the fall at hundreds of times per second, based on the dynamics of an inverted pendulum.[71] Many different balancing robots have been designed.[72] While the Segway is not commonly thought of as a robot, it can be thought of as a component of a robot, when used as such Segway refer to them as RMP (Robotic Mobility Platform). An example of this use has been as NASA Robonaut that has been mounted on a Segway.One-wheeled balancing robots Main article: Self-balancing unicycle A one-wheeled balancing robot is an extension of a two-wheeled balancing robot so that it can move in any 2D direction using a round ball as its only wheel. Several one-wheeled balancing robots have been designed recently, such as Carnegie Mellon Universitys "Ballbot" that is the approximate height and width of a person, and Tohoku Gakuin University BallIP Because of the long, thin shape and ability to maneuver in tight spaces, they have the potential to function better than other robots in environments with people
"""
# Pass the Text to Model
robotics_doc = nlp(robotics_data)
print('Before PreProcessing n_Tokens: ', len(robotics_doc))
# Removing stopwords and punctuation from the doc.
robotics_doc=[token for token in robotics_doc if not token.is_stop and not token.is_punct]
print('After PreProcessing n_Tokens: ', len(robotics_doc))
#> Before PreProcessing n_Tokens: 1667
#> After PreProcessing n_Tokens: 782
More than half of the tokens are removed. Makes the processing faster and meaningful.
4. Lemmatization
Have a look at these words: “played”, “playing”, “plays”, “play”.
These words are not entirely unique, as they all basically refer to the root word: “play”. Very often, while trying to interpret the meaning of the text using NLP, you will be concerned about the root meaning and not the tense.
For algorithms that work based on the number of occurrences of the words, having multiple forms of the same word will reduce the number of counts for the root word, which is ‘play’ in this case.
Hence, counting “played” and “playing” as different tokens will not help.
Lemmatization is the method of converting a token to it’s root/base form.
Fortunately, spaCy provides a very easy and robust solution for this and is considered as one of the optimal implementations.
After you’ve formed the Document object (by using nlp()), you can access the root form of every token through Token.lemma_ attribute.
# Lemmatizing the tokens of a doc
text='she played chess against rita she likes playing chess.'
doc=nlp(text)
for token in doc:
print(token.lemma_)
#> -PRON-
#> play
#> chess
#> against
#> rita
#> -PRON-
#> like
#> play
#> chess
#> .
This method also prints ‘PRON’ when it encounters a pronoun as shown above. You might have to explicitly handle them.
5. Strings to Hashes
You are aware that whenever you create a doc , the words of the doc are stored in the Vocab.
Also, consider you have about 1000 text documents each having information about various clothing items of different brands. The chances are, the words “shirt” and “pants” are going to be very common. Each time the word “shirt” occurs , if spaCy were to store the exact string , you’ll end up losing huge memory space.
But this doesn’t happen. Why ?
spaCy hashes or converts each string to a unique ID that is stored in the StringStore.
But, what is StringStore?
It’s a dictionary mapping of hash values to strings, for example 10543432924755684266 –> box
You can print the hash value if you know the string and vice-versa. This is contained in nlp.vocab.strings as shown below.
# Strings to Hashes and Back
doc = nlp("I love traveling")
# Look up the hash for the word "traveling"
word_hash = nlp.vocab.strings["traveling"]
print(word_hash)
# Look up the word_hash to get the string
word_string = nlp.vocab.strings[word_hash]
print(word_string)
#> 5902765392174988614
#> traveling
Interestingly, a word will have the same hash value irrespective of which document it occurs in or which spaCy model is being used.
So your results are reproducible even if you run your code in some one else’s machine.
# Create two different doc with a common word
doc1 = nlp('Raymond shirts are famous')
doc2 = nlp('I washed my shirts ')
# Printing the hash value for each token in the doc
print('-------DOC 1-------')
for token in doc1:
hash_value=nlp.vocab.strings[token.text]
print(token.text ,' ',hash_value)
print('-------DOC 2-------')
for token in doc2:
hash_value=nlp.vocab.strings[token.text]
print(token.text ,' ',hash_value)
#> -------DOC 1-------
#> Raymond 5945540083247941101
#> shirts 9181315343169869855
#> are 5012629990875267006
#> famous 17809293829314912000
#> -------DOC 2-------
#> I 4690420944186131903
#> washed 5520327350569975027
#> my 227504873216781231
#> shirts 9181315343169869855
You can verify that ‘ shirts ‘ has the same hash value irrespective of which document it occurs in. This saves memory space.
6. Lexical attributes of spaCy
Recall that we used is_punct and is_space attributes in Text Preprocessing. They are called as ‘lexical attributes’.
In this section, you will learn about a few more significant lexical attributes.
The spaCy model provides many useful lexical attributes. These are the attributes of Token object, that give you information on the type of token.
For example, you can use like_num attribute of a token to check if it is a number. Let’s print all the numbers in a text.
# Printing the tokens which are like numbers
text=' 2020 is far worse than 2009'
doc=nlp(text)
for token in doc:
if token.like_num:
print(token)
#> 2020
#> 2009
Let us discuss some real-life applications of these features.
Say you have a text file about percentage production of medicine in various cities.
production_text=' Production in chennai is 87 %. In Kolkata, produce it as low as 43 %. In Bangalore, production ia as good as 98 %.In mysore, production is average around 78 %'
What if you just want to a list of various percentages in the text ?
You can convert the text into a Doc object of spaCy and check what tokens are numbers through like_num attribute . If it is a number, you can check if the next token is ” % “. You can access the index of next token through token.i + 1
# Finding the tokens which are numbers followed by %
production_doc=nlp(production_text)
for token in production_doc:
if token.like_num:
index_of_next_token=token.i+ 1
next_token=production_doc[index_of_next_token]
if next_token.text == '%':
print(token.text)
#> 87
#> 43
#> 98
#> 78
There are other useful attributes too. Let’s discuss more.
7. Detecting Email Addresses
Consider you have a text document about details of various employees.
What if you want all the emails of employees to send a common email ?
You can tokenize the document and check which tokens are emails through like_email attribute. like_email returns True if the token is a email
# text containing employee details
employee_text=""" name : Koushiki age: 45 email : koushiki@gmail.com
name : Gayathri age: 34 email: gayathri1999@gmail.com
name : Ardra age: 60 email : ardra@gmail.com
name : pratham parmar age: 15 email : parmar15@yahoo.com
name : Shashank age: 54 email: shank@rediffmail.com
name : Utkarsh age: 46 email :utkarsh@gmail.com"""
# creating a spacy doc
employee_doc=nlp(employee_text)
# Printing the tokens which are email through `like_email` attribute
for token in employee_doc:
if token.like_email:
print(token.text)
#> koushiki@gmail.com
#> gayathri1999@gmail.com
#> ardra@gmail.com
#> parmar15@yahoo.com
#> shank@rediffmail.com
#> utkarsh@gmail.com
Likewise, spaCy provides a variety of token attributes. Below is a list of those attributes and the function they perform
token.is_alpha: ReturnsTrueif the token is an alphabettoken.is_ascii: ReturnsTrueif the token belongs to ascii characterstoken.is_digit: ReturnsTrueif the token is a number(0-9)token.is_upper: ReturnsTrueif the token is upper case alphabettoken.is_lower: ReturnsTrueif the token is lower case alphabettoken.is_space: ReturnsTrueif the token is a space ‘ ‘token.is_bracket: ReturnsTrueif the token is a brackettoken.is_quote: ReturnsTrueif the token is a quotation marktoken.like_url: ReturnsTrueif the token is similar to a URl (link to website)
Apart from Lexical attributes, there are other attributes which throw light upon the tokens. You’ll see about them in next sections.
8. Part of Speech analysis with spaCy
Consider a sentence , “Emily likes playing football”.
Here , Emily is a NOUN , and playing is a VERB. Likewise , each word of a text is either a noun, pronoun, verb, conjection, etc. These tags are called as Part of Speech tags (POS).
How to identify the part of speech of the words in a text document ?
It is present in the pos_ attribute.
# POS tagging using spaCy
my_text='John plays basketball,if time permits. He played in high school too.'
my_doc=nlp(my_text)
for token in my_doc:
print(token.text,'---- ',token.pos_)
#> John ---- PROPN
#> plays ---- VERB
#> basketball ---- NOUN
#> , ---- PUNCT
#> if ---- SCONJ
#> time ---- NOUN
#> permits ---- VERB
#> . ---- PUNCT
#> He ---- PRON
#> played ---- VERB
#> in ---- ADP
#> high ---- ADJ
#> school ---- NOUN
#> too ---- ADV
#> . ---- PUNCT
From above output , you can see the POS tag against each word like VERB , ADJ, etc..
What if you don’t know what the tag SCONJ means ?
Using spacy.explain() function , you can know the explanation or full-form in this case.
spacy.explain('SCONJ')
'subordinating conjunction'
9. How POS tagging helps you in dealing with text based problems.
Consider you have a text document of reviews or comments on a post. Apart from genuine words, there will be certain junk like “etc” which do not mean anything. How can you remove them ?
Using spacy’s pos_ attribute, you can check if a particular token is junk through token.pos_ == 'X' and remove them. Below code demonstrates the same.
# Raw text document
raw_text="""I liked the movies etc The movie had good direction The movie was amazing i.e.
The movie was average direction was not bad The cinematography was nice. i.e.
The movie was a bit lengthy otherwise fantastic etc etc"""
# Creating a spacy object
raw_doc=nlp(raw_text)
# Checking if POS tag is X and printing them
print('The junk values are..')
for token in raw_doc:
if token.pos_=='X':
print(token.text)
print('After removing junk')
# Removing the tokens whose POS tag is junk.
clean_doc=[token for token in raw_doc if not token.pos_=='X']
print(clean_doc)
#> The junk values are..
#> etc
#> i.e.
#> i.e.
#> etc
#> etc
#> After removing junk
#> [I, liked, the, movies, The, movie, had, good, direction, , The, movie, was, amaing,
#> , The, movie, was, average, direction, was, not, bad, The, ciematography, was, nice, .,
#> , The, movie, was, a, bit, lengthy, , otherwise, fantastic, ]
You can also know what types of tokens are present in your text by creating a dictionary shown below.
# creating a dictionary with parts of speeach & corresponding token numbers.
all_tags = {token.pos: token.pos_ for token in raw_doc}
print(all_tags)
#> {95: 'PRON', 100: 'VERB', 90: 'DET', 92: 'NOUN', 101: 'X', 87: 'AUX', 84: 'ADJ', 103: 'SPACE', 94: 'PART', 97: 'PUNCT', 86: 'ADV'}
For better understanding of various POS of a sentence, you can use the visualization function displacy of spacy.
# Importing displacy
from spacy import displacy
my_text='She never like playing , reading was her hobby'
my_doc=nlp(my_text)
# displaying tokens with their POS tags
displacy.render(my_doc,style='dep',jupyter=True)

10. Named Entity Recognition
Have a look at this text “John works at Google1″. In this, ” John ” and ” Google ” are names of a person and a company. These words are referred as named-entities. They are real-world objects like name of a company , place,etc..
How can find all the named-entities in a text ?
Using spaCy’s ents attribute on a document, you can access all the named-entities present in the text.
# Preparing the spaCy document
text='Tony Stark owns the company StarkEnterprises . Emily Clark works at Microsoft and lives in Manchester. She loves to read the Bible and learn French'
doc=nlp(text)
# Printing the named entities
print(doc.ents)
#> (Tony Stark, StarkEnterprises, Emily Clark, Microsoft, Manchester, Bible, French)
You can see all the named entities printed.
But , is this complete information ? NO.
Each named entity belongs to a category, like name of a person, or an organization, or a city, etc. The common Named Entity categories supported by spacy are :
PERSON: Denotes names of peopleGPE: Denotes places like counties, cities, states.ORG: Denotes organizations or companiesWORK_OF_ART: Denotes titles of books, fimls,songs and other artsPRODUCT: Denotes products such as vehicles, food items ,furniture and so on.EVENT: Denotes historical events like wars, disasters ,etc…LANGUAGE: All the recognized languages across the globe.
How can you find out which named entity category does a given text belong to?
You can access the same through .label_ attribute of spacy. It prints the label of named entities as shown below.
# Printing labels of entities.
for entity in doc.ents:
print(entity.text,'--- ',entity.label_)
#> Tony Stark --- PERSON
#> StarkEnterprises --- ORG
#> Emily Clark --- PERSON
#> Microsoft --- ORG
#> Manchester --- GPE
#> Bible --- WORK_OF_ART
#> French --- LANGUAGE
spaCy also provides special visualization for NER through displacy. Using displacy.render() function, you can set the style=ent to visualize.
# Using displacy for visualizing NER
from spacy import displacy
displacy.render(doc,style='ent',jupyter=True)
11. NER Application 1: Extracting brand names with Named Entity Recognition
Now that you have got a grasp on basic terms and process, let’s move on to see how named entity recognition is useful for us.
Consider this article about competition in the mobile industry.
mobile_industry_article=""" 30 Major mobile phone brands Compete in India – A Case Study of Success and Failures
Is the Indian mobile market a terrible War Zone? We have more than 30 brands competing with each other. Let’s find out some insights about the world second-largest mobile bazaar.There is a massive invasion by Chinese mobile brands in India in the last four years. Some of the brands have been able to make a mark while others like Meizu, Coolpad, ZTE, and LeEco are a failure.On one side, there are brands like Sony or HTC that have quit from the Indian market on the other side we have new brands like Realme or iQOO entering the marketing in recent months.The mobile market is so competitive that some of the brands like Micromax, which had over 18% share back in 2014, now have less than 5%. Even the market leader Samsung with a 34% market share in 2014, now has a 21% share whereas Xiaomi has become a market leader. The battle is fierce and to sustain and scale-up is going to be very difficult for any new entrant.new comers in Indian Mobile MarketiQOO –They have recently (March 2020) launched the iQOO 3 in India with its first 5G phone – iQOO 3. The new brand is part of the Vivo or the BBK electronics group that also owns several other brands like Oppo, Oneplus and Realme.Realme – Realme launched the first-ever phone – Realme 1 in November 2018 and has quickly became a popular brand in India. The brand is one of the highest sellers in online space and even reached a 16% market share threatening Xiaomi’s dominance.iVoomi – In 2017, we have seen the entry of some new Chinese mobile brands likeiVoomi which focuses on the sub 10k price range, and is a popular online player. They have an association with Flipkart.Techno & Infinix – Transsion Group’s Tecno and Infinix brands debuted in India in mid-2017 and are focusing on the low end and mid-range phones in the price range of Rs. 5000 to Rs. 12000.10.OR & Lephone – 10.OR has a partnership with Amazon India and is an exclusive online brand with phones like 10.OR D, G and E. However, the brand is not very aggressive currently.Kult – Kult is another player who launched a very aggressively priced Kult Beyond mobile in 2017 and followed up by launching 2-3 more models.However, most of these new brands are finding it difficult to strengthen their footing in India. As big brands like Xiaomi leave no stone unturned to make things difficult.Also, it is worth noting that there is less Chinese players coming to India now. As either all the big brands have already set shop or burnt their hands and retreated to the homeland China.Chinese/ Global Brands Which failed or are at the Verge of Failing in India?
There are a lot more failures in the market than the success stories. Let’s first look at the failures and then we will also discuss why some brands were able to succeed in India.HTC – The biggest surprise this year for me was the failure of HTC in India. The brand has been in the country for many years, in fact, they were the first brand to launch Android mobiles. Finally HTC decided to call it a day in July 2018.LeEco – LeEco looked promising and even threatening to Xiaomi when it came to India. The company launched a series of new phones and smart TVs at affordable rates. Unfortunately, poor financial planning back home caused the brand to fail in India too.LG – The company seems to have lost focus and are doing poorly in all segments. While the budget and mid-range offering are uncompetitive, the high-end models are not preferred by buyers.Sony – Absurd pricing and lack of ability to understand the Indian buyers have caused Sony to shrink mobile operations in India. In the last 2 years, there are far fewer launches and hardly any promotions or hype around the new products.Meizu – Meizu is also a struggling brand in India and is going nowhere with the current strategy. There are hardly any popular mobiles nor a retail presence.ZTE – The company was aggressive till last year with several new phones launching under the Nubia banner, but with recent issues in the US, they have even lost the plot in India.Coolpad – I still remember the first meeting with Coolpad CEO in Mumbai when the brand started operations. There were big dreams and ambitions, but the company has not been able to deliver and keep up with the rivals in the last 1 year.Gionee – Gionee was doing well in the retail, but the infighting in the company and loss of focus from the Chinese parent company has made it a failure. The company is planning a comeback. However, we will have to wait and see when that happens."""
What if you want to know all the companies that are mentioned in this article?
This is where Named Entity Recognition helps. You can check which tokens are organizations using label_ attribute as shown in below code.
# creating spacy doc
mobile_doc=nlp(mobile_industry_article)
# List to store name of mobile companies
list_of_org=[]
# Appending entities which havel the label 'ORG' to the list
for entity in mobile_doc.ents:
if entity.label_=='ORG':
list_of_org.append(entity.text)
print(list_of_org)
#> ['Meizu', 'ZTE', 'LeEco', 'Sony', 'HTC', 'Xiaomi', 'Xiaomi', 'iVoomi', 'Techno & Infinix – Transsion Group',
#> Lephone', 'Amazon India', 'Kult', 'Kult', 'Kult Beyond', 'HTC', 'Android', 'Sony', 'Sony', 'Meizu', 'Meizu', 'ZTE', 'Nubia']
You have successfully extracted list of companies that were mentioned in the article.
12. NER Application 2: Automatically Masking Entities
Let us also discuss another application. You come across many articles about theft and other crimes.
# Creating a doc on news articles
news_text="""Indian man has allegedly duped nearly 50 businessmen in the UAE of USD 1.6 million and fled the country in the most unlikely way -- on a repatriation flight to Hyderabad, according to a media report on Saturday.Yogesh Ashok Yariava, the prime accused in the fraud, flew from Abu Dhabi to Hyderabad on a Vande Bharat repatriation flight on May 11 with around 170 evacuees, the Gulf News reported.Yariava, the 36-year-old owner of the fraudulent Royal Luck Foodstuff Trading, made bulk purchases worth 6 million dirhams (USD 1.6 million) against post-dated cheques from unsuspecting traders before fleeing to India, the daily said.
The bought goods included facemasks, hand sanitisers, medical gloves (worth nearly 5,00,000 dirhams), rice and nuts (3,93,000 dirhams), tuna, pistachios and saffron (3,00,725 dirhams), French fries and mozzarella cheese (2,29,000 dirhams), frozen Indian beef (2,07,000 dirhams) and halwa and tahina (52,812 dirhams).
The list of items and defrauded persons keeps getting longer as more and more victims come forward, the report said.
The aggrieved traders have filed a case with the Bur Dubai police station.
The traders said when the dud cheques started bouncing they rushed to the Royal Luck's office in Dubai but the shutters were down, even the fraudulent company's warehouses were empty."""
news_doc=nlp(news_text)
While using this for a case study, you might need to to avoid use of original names, companies and places. How can you do it ?
Write a function which will scan the text for named entities which have the labels PERSON , ORG and GPE. These tokens can be replaced by “UNKNOWN”.
I suggest to try it out in your Jupyter notebook if you have access. The answer is below.
# Function to identify if tokens are named entities and replace them with UNKNOWN
def remove_details(word):
if word.ent_type_ =='PERSON' or word.ent_type_=='ORG' or word.ent_type_=='GPE':
return ' UNKNOWN '
return word.string
# Function where each token of spacy doc is passed through remove_deatils()
def update_article(doc):
# iterrating through all entities
for ent in doc.ents:
ent.merge()
# Passing each token through remove_details() function.
tokens = map(remove_details,doc)
return ''.join(tokens)
# Passing our news_doc to the function update_article()
update_article(news_doc)
#> "Indian man has allegedly duped nearly 50 businessmen in the UNKNOWN of USD 1.6 million and fled the country in the most unlikely way -- on a repatriation flight to UNKNOWN , according to a media report on Saturday.
#> UNKNOWN , the prime accused in the fraud, flew from UNKNOWN to UNKNOWN on a Vande Bharat repatriation flight on May 11 with around 170 evacuees, UNKNOWN reported.
#> UNKNOWN , the 36-year-old owner of the fraudulent UNKNOWN , made bulk purchases worth 6 million dirhams (USD 1.6 million) against post-dated cheques from unsuspecting traders before fleeing to UNKNOWN , the daily said.\n\nThe bought goods included facemasks, hand sanitisers, medical gloves (worth nearly 5,00,000 dirhams), rice and nuts (3,93,000 dirhams), tuna, pistachios and saffron (3,00,725 dirhams), French fries and mozzarella cheese (2,29,000 dirhams), frozen Indian beef (2,07,000 dirhams) and halwa and UNKNOWN (52,812 dirhams).\n\nThe list of items and defrauded persons keeps getting longer as more and more victims come forward, the report said.\n\nThe aggrieved traders have filed a case with the Bur Dubai police station.\n\nThe traders said when the UNKNOWN cheques started bouncing they rushed to UNKNOWN office in UNKNOWN but the shutters were down, even the fraudulent company's warehouses were empty."
You can observe that the article has been updated and many names have been hidden now. These are few applications of NER in reality.
13. Rule based Matching
Consider the sentence “Windows 8.0 has become outdated and slow. It’s better to update to Windows 10”. What if you want to extracts all versions of Windows mentioned in the text ?
There will be situations like these, where you’ll need extract specific pattern type phrases from the text. This is called Rule-based matching.
Rule-based matching in spacy allows you write your own rules to find or extract words and phrases in a text. spacy supports three kinds of matching methods :
- Token Matcher
- Phrase Matcher
- Entity Ruler
Token Matcher
spaCy supports a rule based matching engine Matcher, which operates over individual tokens to find desired phrases.
You can import spaCy’s Rule based Matcher as shown below.
from spacy.matcher import Matcher
The procedure to implement a token matcher is:
- Initialize a
Matcherobject - Define the pattern you want to match
- Add the pattern to the matcher
- Pass the text to the matcher to extract the matching positions.
Let’s see how to implement the above steps.
Token Matcher Example 1
First step: Initialize the Matcher with the vocabulary of your spacy model nlp
# Initializing the matcher with vocab
matcher = Matcher(nlp.vocab)
matcher
<spacy.matcher.matcher.Matcher at 0x7ff4e3a943c8>
You have store what type of pattern you desire in a list of dictionaries. Each dictionary represents a token. The rules for the token can refer to annotations Ex: ISDIGIT , ISALPHA , token.text , token.pos_,etc..
Let’s see how to create the pattern for identifying phrases like ” version : 11″ , ” version : 5 ” and so on.
First, create a list of dictionaries that represents the pattern you want to capture.
# Define the matching pattern
my_pattern=[{"LOWER": "version"}, {"IS_PUNCT": True}, {"LIKE_NUM": True}]
Now , you can add the pattern to your Matcher through matcher.add() function.
The input parameters are:
match_id– a custom id for your matcher . In this case I use ” Versionfinder”match_on– It is an optional parameter, where you can call functions when a match is found. Otherwise, useNone*patterns– You need to pass your pattern (list of dicts describing tokens)
# Define the token matcher
matcher.add('VersionFinder', None, my_pattern)
You can now use matcher on your text document.
# Run the Token Matcher
my_text = 'The version : 6 of the app was released about a year back and was not very sucessful. As a comeback, six months ago, version : 7 was released and it took the stage. After that , the app has has the limelight till now. On interviewing some sources, we get to know that they have outlined visiond till version : 12 ,the Ultimate.'
my_doc = nlp(my_text)
desired_matches = matcher(my_doc)
desired_matches
#> [(6950581368505071052, 2, 5),
#> (6950581368505071052, 28, 31),
#> (6950581368505071052, 66, 69)]
Passing the Doc to matcher() returns a list of tuples as shown above. Each tuple has the structure –(match_id, start, end).
match_id denotes the hash value of the matching string.You can find the string corresponding to the ID in nlp.vocab.strings. The start and end denote the starting and ending token numbers of the document, which is a match.
How to extract the phrases that matches from this list of tuples ?
A slice of a Doc object is referred as Span. If you have your spacy doc , and start and end indices, you extract a slice / span of the text through :Span=doc[start:end].
Below code makes use of this to extract matching phrases with the help of list of tuples desired_matches.
# Extract the matches
for match_id, start, end in desired_matches :
string_id = nlp.vocab.strings[match_id]
span = my_doc[start:end]
print(span.text)
#> version : 6
#> version : 7
#> version : 12
Above code has successfully performed rule-based matching and printed all the versions mentioned in the text.
This is how rule based matching works. Let’s dive deeper and look at a few more implementations !
Token Matcher Example 2
Consider a text document containing queries on a travel website. You wish to extract phrases from the text that mention visiting various places.
# Parse text
text = """I visited Manali last time. Around same budget trips ? "
I was visiting Ladakh this summer "
I have planned visiting NewYork and other abroad places for next year"
Have you ever visited Kodaikanal? """
doc = nlp(text)
Your desired pattern is a combination of 2 tokens. The first token is text “visiting ” or other related words.You can use the LEMMA attribute for the same.The second desired token is the place/location. You can set POS tag to be “PROPN” for this token.
The below code demonstrates how to write and add this pattern to the matcher
# Initialize the matcher
matcher = Matcher(nlp.vocab)
# Write a pattern that matches a form of "visit" + place
my_pattern = [{"LEMMA": "visit"}, {"POS": "PROPN"}]
# Add the pattern to the matcher and apply the matcher to the doc
matcher.add("Visting_places", None,my_pattern)
matches = matcher(doc)
# Counting the no of matches
print(" matches found:", len(matches))
# Iterate over the matches and print the span text
for match_id, start, end in matches:
print("Match found:", doc[start:end].text)
#>matches found: 4
#> Match found: visited Manali
#> Match found: visiting Ladakh
#> Match found: visiting NewYork
#> Match found: visited Kodaikanal
The above output is just as desired.
Token Matcher Example 3
Let’s see a slightly involved example.
Sometimes, you may have the need to choose tokens which fall under a few POS categories. Let us consider one more example of this case.
# Parse text
engineering_text = """If you study aeronautical engineering, you could specialize in aerodynamics, aeroelasticity,
composites analysis, avionics, propulsion and structures and materials. If you choose to study chemical engineering, you may like to
specialize in chemical reaction engineering, plant design, process engineering, process design or transport phenomena. Civil engineering is the professional practice of designing and developing infrastructure projects. This can be on a huge scale, such as the development of
nationwide transport systems or water supply networks, or on a smaller scale, such as the development of single roads or buildings.
specializations of civil engineering include structural engineering, architectural engineering, transportation engineering, geotechnical engineering,
environmental engineering and hydraulic engineering. Computer engineering concerns the design and prototyping of computing hardware and software.
This subject merges electrical engineering with computer science, oldest and broadest types of engineering, mechanical engineering is concerned with the design,
manufacturing and maintenance of mechanical systems. You’ll study statics and dynamics, thermodynamics, fluid dynamics, stress analysis, mechanical design and
technical drawing"""
doc = nlp(engineering_text)
Above, you have a text document about different career choices.
Let’s say you wish to extract a list of all the engineering courses mentioned in it. The desired pattern : _ Engineering. The first token is usually a NOUN (eg: computer, civil), but sometimes it is an ADJ (eg: transportation, etc.)
So, you need to write a pattern with the condition that first token has POS tag either a NOUN or an ADJ.
How to do that ?
The attribute IN helps you in this. You can use {"POS": {"IN": ["NOUN", "ADJ"]}} dictionary to represent the first token.
# Initializing the matcher
matcher = Matcher(nlp.vocab)
# Write a pattern that matches a form of "noun/adjective"+"engineering"
my_pattern = [{"POS": {"IN": ["NOUN", "ADJ"]}}, {"LOWER": "engineering"}]
# Add the pattern to the matcher and apply the matcher to the doc
matcher.add("identify_courses", None,my_pattern)
matches = matcher(doc)
print("Total matches found:", len(matches))
# Iterate over the matches and print the matching text
for match_id, start, end in matches:
print("Match found:", doc[start:end].text)
Total matches found: 15
Match found: aeronautical engineering
Match found: chemical engineering
Match found: reaction engineering
Match found: process engineering
Match found: Civil engineering
Match found: civil engineering
Match found: structural engineering
Match found: architectural engineering
Match found: transportation engineering
Match found: geotechnical engineering
Match found: environmental engineering
Match found: hydraulic engineering
Match found: Computer engineering
Match found: electrical engineering
Match found: mechanical engineering
You have neatly extracted the desired phrases with the Token matcher.
Note that IN used in above code is an extended pattern attribute along with NOT_IN. It serves the exact opposite purpose of IN.
This is all about Token Matcher, let’s look at the Phrase Matcher next.
Phrase Matcher
Using Matcher of spacy you can identify token patterns as seen above. But when you have a phrase to be matched, using Matcher will take a lot of time and is not efficient.
spaCy provides PhraseMatcher which can be used when you have a large number of terms(single or multi-tokens) to be matched in a text document. Writing patterns for Matcher is very difficult in this case. PhraseMatcher solves this problem, as you can pass Doc patterns rather than Token patterns.
The procedure to use PhraseMatcher is very similar to Matcher.
- Initialize a
PhraseMatcherobject with a vocab. - Define the terms you want to match
- Add the pattern to the matcher
- Run the text through the matcher to extract the matching positions.
from spacy.matcher import PhraseMatcher
After importing , first you need to initialize the PhraseMatcher with vocab through below command
# PhraseMatcher
matcher = PhraseMatcher(nlp.vocab)
As we use it generally in case of long list of terms, it’s better to first store the terms in a list as shown below
# Terms to match
terms_list = ['Bruce Wayne', 'Tony Stark', 'Batman', 'Harry Potter', 'Severus Snape']
You can convert the list of phrases into a doc object through make_doc() method. It is faster and saves time.
# Make a list of docs
patterns = [nlp.make_doc(text) for text in terms_list]
You can add the pattern to your matcher through matcher.add() method.
The inputs for the function are – A custom ID for your matcher, optional parameter for callable function, pattern list.
matcher.add("phrase_matcher", None, *patterns)
Now you can apply your matcher to your spacy text document. Below, you have a text article on prominent fictional characters and their creators.
# Matcher Object
fictional_char_doc = nlp("""Superman (first appearance: 1938) Created by Jerry Siegal and Joe Shuster for Action Comics #1 (DC Comics).Mickey Mouse (1928) Created by Walt Disney and Ub Iworks for Steamboat Willie.Bugs Bunny (1940) Created by Warner Bros and originally voiced by Mel Blanc.Batman (1939) Created by Bill Finger and Bob Kane for Detective Comics #27 (DC Comics).
Dorothy Gale (1900) Created by L. Frank Baum for novel The Wonderful Wizard of Oz. Later portrayed by Judy Garland in the 1939 film adaptation.Darth Vader (1977) Created by George Lucas for Star Wars IV: A New Hope.The Tramp (1914) Created and portrayed by Charlie Chaplin for Kid Auto Races at Venice.Peter Pan (1902) Created by J.M. Barrie for novel The Little White Bird.
Indiana Jones (1981) Created by George Lucas for Raiders of the Lost Ark. Portrayed by Harrison Ford.Rocky Balboa (1976) Created and portrayed by Sylvester Stallone for Rocky.Vito Corleone (1969) Created by Mario Puzo for novel The Godfather. Later portrayed by Marlon Brando and Robert DeNiro in Coppola’s film adaptation.Han Solo (1977) Created by George Lucas for Star Wars IV: A New Hope.
Portrayed most famously by Harrison Ford.Homer Simpson (1987) Created by Matt Groening for The Tracey Ullman Show, later The Simpsons as voiced by Dan Castellaneta.Archie Bunker (1971) Created by Norman Lear for All in the Family. Portrayed by Carroll O’Connor.Norman Bates (1959) Created by Robert Bloch for novel Psycho. Later portrayed by Anthony Perkins in Hitchcock’s film adaptation.King Kong (1933)
Created by Edgar Wallace and Merian C Cooper for the film King Kong.Lucy Ricardo (1951) Portrayed by Lucille Ball for I Love Lucy.Spiderman (1962) Created by Stan Lee and Steve Ditko for Amazing Fantasy #15 (Marvel Comics).Barbie (1959) Created by Ruth Handler for the toy company Mattel Spock (1964) Created by Gene Roddenberry for Star Trek. Portrayed most famously by Leonard Nimoy.
Godzilla (1954) Created by Tomoyuki Tanaka, Ishiro Honda, and Eiji Tsubaraya for the film Godzilla.The Joker (1940) Created by Jerry Robinson, Bill Finger, and Bob Kane for Batman #1 (DC Comics)Winnie-the-Pooh (1924) Created by A.A. Milne for verse book When We Were Young.Popeye (1929) Created by E.C. Segar for comic strip Thimble Theater (King Features).Tarzan (1912) Created by Edgar Rice Burroughs for the novel Tarzan of the Apes.Forrest Gump (1986) Created by Winston Groom for novel Forrest Gump. Later portrayed by Tom Hanks in Zemeckis’ film adaptation.Hannibal Lector (1981) Created by Thomas Harris for the novel Red Dragon. Portrayed most famously by Anthony Hopkins in the 1991 Jonathan Demme film The Silence of the Lambs.
Big Bird (1969) Created by Jim Henson and portrayed by Carroll Spinney for Sesame Street.Holden Caulfield (1945) Created by J.D. Salinger for the Collier’s story “I’m Crazy.” Reworked into the novel The Catcher in the Rye in 1951.Tony Montana (1983) Created by Oliver Stone for film Scarface. Portrayed by Al Pacino.Tony Soprano (1999) Created by David Chase for The Sopranos. Portrayed by James Gandolfini.
The Terminator (1984) Created by James Cameron and Gale Anne Hurd for The Terminator. Portrayed by Arnold Schwarzenegger.Jon Snow (1996) Created by George RR Martin for the novel The Game of Thrones. Portrayed by Kit Harrington.Charles Foster Kane (1941) Created and portrayed by Orson Welles for Citizen Kane.Scarlett O’Hara (1936) Created by Margaret Mitchell for the novel Gone With the Wind. Portrayed most famously by Vivien Leigh
for the 1939 Victor Fleming film adaptation.Marty McFly (1985) Created by Robert Zemeckis and Bob Gale for Back to the Future. Portrayed by Michael J. Fox.Rick Blaine (1940) Created by Murray Burnett and Joan Alison for the unproduced stage play Everybody Comes to Rick’s. Later portrayed by Humphrey Bogart in Michael Curtiz’s film adaptation Casablanca.Man With No Name (1964) Created by Sergio Leone for A Fistful of Dollars, which was adapted from a ronin character in Kurosawa’s Yojimbo (1961). Portrayed by Clint Eastwood.Charlie Brown (1948) Created by Charles M. Shultz for the comic strip L’il Folks; popularized two years later in Peanuts.E.T. (1982) Created by Melissa Mathison for the film E.T.: the Extra-Terrestrial.Arthur Fonzarelli (1974) Created by Bob Brunner for the show Happy Days. Portrayed by Henry Winkler.)Phillip Marlowe (1939) Created by Raymond Chandler for the novel The Big Sleep.Jay Gatsby (1925) Created by F. Scott Fitzgerald for the novel The Great Gatsby.Lassie (1938) Created by Eric Knight for a Saturday Evening Post story, later turned into the novel Lassie Come-Home in 1940, film adaptation in 1943, and long-running television show in 1954. Most famously portrayed by the dog Pal.
Fred Flintstone (1959) Created by William Hanna and Joseph Barbera for The Flintstones. Voiced most notably by Alan Reed. Rooster Cogburn (1968) Created by Charles Portis for the novel True Grit. Most famously portrayed by John Wayne in the 1969 film adaptation. Atticus Finch (1960) Created by Harper Lee for the novel To Kill a Mockingbird. (Appeared in the earlier work Go Set A Watchman, though this was not published until 2015) Portrayed most famously by Gregory Peck in the Robert Mulligan film adaptation. Kermit the Frog (1955) Created and performed by Jim Henson for the show Sam and Friends. Later popularized in Sesame Street (1969) and The Muppet Show (1976) George Bailey (1943) Created by Phillip Van Doren Stern (then as George Pratt) for the short story The Greatest Gift. Later adapted into Capra’s It’s A Wonderful Life, starring James Stewart as the renamed George Bailey. Yoda (1980) Created by George Lucas for The Empire Strikes Back. Sam Malone (1982) Created by Glen and Les Charles for the show Cheers. Portrayed by Ted Danson. Zorro (1919) Created by Johnston McCulley for the All-Story Weekly pulp magazine story The Curse of Capistrano.Later adapted to the Douglas Fairbanks’ film The Mark of Zorro (1920).Moe, Larry, and Curly (1928) Created by Ted Healy for the vaudeville act Ted Healy and his Stooges. Mary Poppins (1934) Created by P.L. Travers for the children’s book Mary Poppins. Ron Burgundy (2004) Created by Will Ferrell and Adam McKay for the film Anchorman: The Legend of Ron Burgundy. Portrayed by Will Ferrell. Mario (1981) Created by Shigeru Miyamoto for the video game Donkey Kong. Harry Potter (1997) Created by J.K. Rowling for the novel Harry Potter and the Philosopher’s Stone. The Dude (1998) Created by Ethan and Joel Coen for the film The Big Lebowski. Portrayed by Jeff Bridges.
Gandalf (1937) Created by J.R.R. Tolkien for the novel The Hobbit. The Grinch (1957) Created by Dr. Seuss for the story How the Grinch Stole Christmas! Willy Wonka (1964) Created by Roald Dahl for the children’s novel Charlie and the Chocolate Factory. The Hulk (1962) Created by Stan Lee and Jack Kirby for The Incredible Hulk #1 (Marvel Comics) Scooby-Doo (1969) Created by Joe Ruby and Ken Spears for the show Scooby-Doo, Where Are You! George Costanza (1989) Created by Larry David and Jerry Seinfeld for the show Seinfeld. Portrayed by Jason Alexander.Jules Winfield (1994) Created by Quentin Tarantino for the film Pulp Fiction. Portrayed by Samuel L. Jackson. John McClane (1988) Based on the character Detective Joe Leland, who was created by Roderick Thorp for the novel Nothing Lasts Forever. Later adapted into the John McTernan film Die Hard, starring Bruce Willis as McClane. Ellen Ripley (1979) Created by Don O’cannon and Ronald Shusett for the film Alien. Portrayed by Sigourney Weaver. Ralph Kramden (1951) Created and portrayed by Jackie Gleason for “The Honeymooners,” which became its own show in 1955.Edward Scissorhands (1990) Created by Tim Burton for the film Edward Scissorhands. Portrayed by Johnny Depp.Eric Cartman (1992) Created by Trey Parker and Matt Stone for the animated short Jesus vs Frosty. Later developed into the show South Park, which premiered in 1997. Voiced by Trey Parker.
Walter White (2008) Created by Vince Gilligan for Breaking Bad. Portrayed by Bryan Cranston. Cosmo Kramer (1989) Created by Larry David and Jerry Seinfeld for Seinfeld. Portrayed by Michael Richards.Pikachu (1996) Created by Atsuko Nishida and Ken Sugimori for the Pokemon video game and anime franchise.Michael Scott (2005) Based on a character from the British series The Office, created by Ricky Gervais and Steven Merchant. Portrayed by Steve Carell.Freddy Krueger (1984) Created by Wes Craven for the film A Nightmare on Elm Street. Most famously portrayed by Robert Englund.
Captain America (1941) Created by Joe Simon and Jack Kirby for Captain America Comics #1 (Marvel Comics)Goku (1984) Created by Akira Toriyama for the manga series Dragon Ball Z.Bambi (1923) Created by Felix Salten for the children’s book Bambi, a Life in the Woods. Later adapted into the Disney film Bambi in 1942.Ronald McDonald (1963) Created by Williard Scott for a series of television spots.Waldo/Wally (1987) Created by Martin Hanford for the children’s book Where’s Wally? (Waldo in US edition) Frasier Crane (1984) Created by Glen and Les Charles for Cheers. Portrayed by Kelsey Grammar.Omar Little (2002) Created by David Simon for The Wire.Portrayed by Michael K. Williams.
Wolverine (1974) Created by Roy Thomas, Len Wein, and John Romita Sr for The Incredible Hulk #180 (Marvel Comics) Jason Voorhees (1980) Created by Victor Miller for the film Friday the 13th. Betty Boop (1930) Created by Max Fleischer and the Grim Network for the cartoon Dizzy Dishes. Bilbo Baggins (1937) Created by J.R.R. Tolkien for the novel The Hobbit. Tom Joad (1939) Created by John Steinbeck for the novel The Grapes of Wrath. Later adapted into the 1940 John Ford film and portrayed by Henry Fonda.Tony Stark (Iron Man) (1963) Created by Stan Lee, Larry Lieber, Don Heck and Jack Kirby for Tales of Suspense #39 (Marvel Comics)Porky Pig (1935) Created by Friz Freleng for the animated short film I Haven’t Got a Hat. Voiced most famously by Mel Blanc.Travis Bickle (1976) Created by Paul Schrader for the film Taxi Driver. Portrayed by Robert De Niro.
Hawkeye Pierce (1968) Created by Richard Hooker for the novel MASH: A Novel About Three Army Doctors. Famously portrayed by both Alan Alda and Donald Sutherland. Don Draper (2007) Created by Matthew Weiner for the show Mad Men. Portrayed by Jon Hamm. Cliff Huxtable (1984) Created and portrayed by Bill Cosby for The Cosby Show. Jack Torrance (1977) Created by Stephen King for the novel The Shining. Later adapted into the 1980 Stanley Kubrick film and portrayed by Jack Nicholson. Holly Golightly (1958) Created by Truman Capote for the novella Breakfast at Tiffany’s. Later adapted into the 1961 Blake Edwards films starring Audrey Hepburn as Holly. Shrek (1990) Created by William Steig for the children’s book Shrek! Later adapted into the 2001 film starring Mike Myers as the titular character. Optimus Prime (1984) Created by Dennis O’Neil for the Transformers toy line.Sonic the Hedgehog (1991) Created by Naoto Ohshima and Yuji Uekawa for the Sega Genesis game of the same name.Harry Callahan (1971) Created by Harry Julian Fink and R.M. Fink for the movie Dirty Harry. Portrayed by Clint Eastwood.Bubble: Hercule Poirot, Tyrion Lannister, Ron Swanson, Cercei Lannister, J.R. Ewing, Tyler Durden, Spongebob Squarepants, The Genie from Aladdin, Pac-Man, Axel Foley, Terry Malloy, Patrick Bateman
Pre-20th Century: Santa Claus, Dracula, Robin Hood, Cinderella, Huckleberry Finn, Odysseus, Sherlock Holmes, Romeo and Juliet, Frankenstein, Prince Hamlet, Uncle Sam, Paul Bunyan, Tom Sawyer, Pinocchio, Oliver Twist, Snow White, Don Quixote, Rip Van Winkle, Ebenezer Scrooge, Anna Karenina, Ichabod Crane, John Henry, The Tooth Fairy,
Br’er Rabbit, Long John Silver, The Mad Hatter, Quasimodo """)
character_matches = matcher(fictional_char_doc)
The PhraseMatcher returns a list of (match_id, start, end) tuples, describing the matches. A match tuple describes a span doc[start:end].
The match_id refers to the string ID of the match pattern.
# Matching positions
character_matches
#> [(520014689628841516, 1366, 1368),
#> (520014689628841516, 1379, 1381),
#> (520014689628841516, 2113, 2115)]
You can see that 3 of the terms have been found in the text, but we dont know what they are. For that , you need to extract the Span using start and end as shown below.
# Matched items
for match_id, start, end in character_matches:
span = fictional_char_doc[start:end]
print(span.text)
#> Batman
#> Batman
#> Harry Potter
#> Harry Potter
#> Tony Stark
You can see that ‘Harry Potter’ and ‘Batman’ were mentioned twice ,
‘Tony Stark’ once, but the other terms didn’t match.
Another useful feature of PhraseMatcher is that while intializing the matcher, you have an option to use the parameter attr, using which you can set rules for how the matching has to happen.
How to use attr?
Setting a attr to match on will change the token attributes that will be compared to determine a match. For example, if you use attr='LOWER', then case-insensitive matching will happen.
For understanding, I shall demonstrate it in the below example.
# Using the attr parameter as 'LOWER'
case_insensitive_matcher = PhraseMatcher(nlp.vocab, attr="LOWER")
# Creating doc & pattern
my_doc=nlp('I wish to visit new york city')
terms=['New York']
pattern=[nlp(term) for term in terms]
# adding pattern to the matcher
case_insensitive_matcher.add("matcher",None,*pattern)
# applying matcher to the doc
my_matches=case_insensitive_matcher(my_doc)
for match_id,start,end in my_matches:
span=my_doc[start:end]
print(span.text)
#> new york
You can observe that irrespective the difference in the case, the phrase was successfully matched.
Let’s see a more useful case.
If you set the attr='SHAPE', then matching will be based on the shape of the terms in pattern .
This can be used to match URLs, dates of specific format, time-formats, where the shape will be same. Let us consider a text having information about various radio channels.
You want to extract the channels (in the form of ddd.d)
my_doc = nlp('From 8 am , Mr.X will be speaking on your favorite chanel 191.1. Afterward there shall be an exclusive interview with actor Vijay on channel 194.1 . Hope you are having a great day. Call us on 666666')
Let us create the pattern. You need to pass an example radio channel of the desired shape as pattern to the matcher.
pattern=nlp('154.6')
Your pattern is ready , now initialize the PhraseMatcher with attribute set as "SHAPE".. Then add the pattern to matcher.
# Initializing the matcher and adding pattern
pincode_matcher= PhraseMatcher(nlp.vocab,attr="SHAPE")
pincode_matcher.add("pincode_matching", None, pattern)
You can apply the matcher to your doc as usual and print the matching phrases.
# Applying matcher on doc
matches = pincode_matcher(my_doc)
# Printing the matched phrases
for match_id, start, end in matches:
span = my_doc[start:end]
print(span.text)
#> 191.1
#> 194.1
Above output has successfully printed the mentioned radio-channel stations.
Entity Ruler
Entity Ruler is intetesting and very useful.
While trying to detect entities, some times certain names or organizations are not recognized by default. It might be because they are small scale or rare. Wouldn’t it be better to improve accuracy of our doc.ents_ method ?
spaCy provides a more advanced component EntityRuler that let’s you match named entities based on pattern dictionaries. Overall, it makes Named Entity Recognition more efficient.
It is a pipeline supported component and can be imported as shown below .
from spacy.pipeline import EntityRuler
Initialize the EntityRuler as shown below
# Initialize
ruler = EntityRuler(nlp)
What type of patterns do you pass to the EntityRuler ?
Basically, you need to pass a list of dictionaries, where each dictionary represents a pattern to be matched.
Each dictionary has two keys "label" and "pattern".
label: Holds the entity type as values eg: PERSON, GPE, etcpattern: Holds the the matcher pattern as values eg: John, Calcutta, etc
For example, let us consider a situation where you want to add certain book names under the entity label WORK_OF_ART.
What will be your pattern ?
My label will be WORK_OF_ART and pattern will contain the book names I wish to add. Below code demonstrates the same.
pattern=[{"label": "WORK_OF_ART", "pattern": "My guide to statistics"}]
You can add pattern to the ruler through add_patterns() function
ruler.add_patterns(pattern)
How can you apply the EntityRuler to your text ?
You can add it to the nlp model through add_pipe() function. It Adds the ruler component to the processing pipeline
# Add entity ruler to the NLP pipeline.
# NLP pipeline is a sequence of NLP tasks that spaCy performs for a given text
# More on pipelines coming in future section in this post.
nlp.add_pipe(ruler)
Now , the EntityRuler is incorporated into nlp. You can pass the text document to nlp to create a spacy doc . As the ruler is already added, by default “My guide to statistics” will be recognized as named entities under category WORK_OF_ART.
You can verify it through below code
# Extract the custom entity type
doc = nlp(" I recently published my work fanfiction by Dr.X . Right now I'm studying the book of my friend .You should try My guide to statistics for clear concepts.")
print([(ent.text, ent.label_) for ent in doc.ents])
#> [('My guide to statistics', 'WORK_OF_ART')]
You have successfuly enhanced the named entity recoginition. It is possible to train spaCy to detect new entities it has not seen as well.
EntityRuler has many amazing features, you’ll run into them later in this article.
14. Word Vectors and similarity
Word Vectors are numerical vector representations of words and documents. The numeric form helps understand the semantics about the word and can be used for NLP tasks such as classification.
Because, vector representation of words that are similar in meaning and context appear closer together.
spaCy models support inbuilt vectors that can be accessed through directly through the attributes of Token and Doc. How can you check if the model supports tokens with vectors ?
First, load a spaCy model of your choice. Here, I am using the medium model for english en_core_web_md. Next, tokenize your text document with nlp boject of spacy model.
You can check if a token has in-buit vector through Token.has_vector attribute.
!python -m spacy download en_core_web_md
# Check if word vector is available
import spacy
# Loading a spacy model
nlp = spacy.load("en_core_web_md")
tokens = nlp("I am an excellent cook")
for token in tokens:
print(token.text ,' ',token.has_vector)
#> I True
#> am True
#> an True
#> excellent True
#> cook True
You can see that all tokens in above text have a vector. It is because these words are pre-existing or the model has been trained on them. Let’s see what is the result when the text has some non-existent / made up word .
# Check if word vector is available
tokens=nlp("I wish to go to hogwarts lolXD ")
for token in tokens:
print(token.text,' ',token.has_vector)
#> I True
#> wish True
#> to True
#> go True
#> to True
#> hogwarts True
#> lolXD False
The word “lolXD” is not a part of the model’s vocabulary, hence it does not have a vector.
How to access the vector of the tokens?
You can access through token.vector method. Also ,token.vector_norm attribute stores L2 norm of the token’s vector representation.
# Extract the word Vector
tokens=nlp("I wish to go to hogwarts lolXD ")
for token in tokens:
print(token.text,' ',token.vector_norm)
#> I 6.4231944
#> wish 5.1652417
#> to 4.74484
#> go 5.05723
#> to 4.74484
#> hogwarts 7.4110312
#> lolXD 0.0
You can notice that when vector is not present for a token, the value of vector_norm is 0 for it.
Identifying similarity of two words or tokens is very crucial . It is the base to many everyday NLP tasks like text classification , recommendation systems, etc.. It is necessary to know how similar two sentences are , so they can be grouped in same or opposite category.
How to find similarity of two tokens?
Every Doc or Token object has the function similarity(), using which you can compare it with another doc or token.
Know about cosine similarity.
It returns a float value. Higher the value is, more similar are the two tokens or documents.
# Compute Similarity
token_1=nlp("bad")
token_2=nlp("terrible")
similarity_score=token_1.similarity(token_2)
print(similarity_score)
#> 0.7739191815858104
That is how you use the similarity function.
Let me show you an example of how similarity() function on docs can help in text categorization.
review_1=nlp(' The food was amazing')
review_2=nlp('The food was excellent')
review_3=nlp('I did not like the food')
review_4=nlp('It was very bad experience')
score_1=review_1.similarity(review_2)
print('Similarity between review 1 and 2',score_1)
score_2=review_3.similarity(review_4)
print('Similarity between review 3 and 4',score_2)
#> Similarity between review 1 and 2 0.9566212627033192
#> Similarity between review 3 and 4 0.8461898618188776
You can see that first two reviews have high similarity score and hence will belong in the same category(positive).
You can also check if two tokens or docs are related (includes both similar side and opposite sides) or completely irrelevant.
# Compute Similarity between texts
pizza=nlp('pizza')
burger=nlp('burger')
chair=nlp('chair')
print('Pizza and burger ',pizza.similarity(burger))
print('Pizza and chair ',pizza.similarity(chair))
#> Pizza and burger 0.7269758865234512
#> Pizza and chair 0.1917966191121549
You can observe that pizza and burger are both food items and have good similarity score.
Whereas, pizza and chair are completely irrelevant and score is very low.
15. Merging and Splitting Tokens with retokenize
When nlp object is called on a text document, spaCy first tokenizes the text to produce a Docobject. The Tokenizer is the pipeline component responsible for segmenting the text into tokens.
Sometime tokenization splits a combined word into two tokens instead of keeping it as one unit.
Consider the below case, you have a text document on a film ‘John Wick’.
# Printing tokens of a text
text="John Wick is a 2014 American action thriller film directed by Chad Stahelski"
doc=nlp(text)
for token in doc:
print(token.text)
#> John
#> Wick
#> is
#> a
#> 2014
#> American
#> action
#> thriller
#> film
#> directed
#> by
#> Chad
#> Stahelski
You can see from the output that ‘John’ and ‘Wick’ have been recognized as separate tokens. Same goes for the director’s name “Chad Stahelski”
But in this case, it would make it easier if “John Wick” was considered a single token.
So, How to combine the tokens?
spaCy provides Doc.retokenize , a context manager that allows you to merge and split tokens. For merging two or more tokens , you can make use of the retokenizer.merge() function.
How to use the retokenizer.merge() ?
The input arguments shall be:
span: You can pass a span, which contains the slice of doc you wanted to be treated as a single token. In this case, John wick is stored in a span and passed as input.span=doc[0:2]attrs: You can use it to set attributes to set on the merged token. Here, I want to set thePOS(part of speech tag) for “John Wick” asPROPN.(proper noun). You can useattrs={"POS" : "PROPN"}to achieve it.
# Using retokenizer.merge()
with doc.retokenize() as retokenizer:
attrs = {"POS": "PROPN"}
retokenizer.merge(doc[0:2], attrs=attrs)
for token in doc:
print(token.text)
#> John Wick
#> is
#> a
#> 2014
#> American
#> action
#> thriller
#> film
#> directed
#> by
#> Chad
#> Stahelski
You can also verify if John wick has been assigned ‘PROPN’ pos tag through below code.
# Printing tokens after merging
for token in doc:
print(token.text,token.pos_)
#> John Wick PROPN
#> is AUX
#> a DET
#> 2014 NUM
#> American ADJ
#> action NOUN
#> thriller NOUN
#> film NOUN
#> directed VERB
#> by ADP
#> Chad PROPN
#> Stahelski PROPN
The attribute has been added correctly.
You have seen how to merge tokens. Now, let us have a look at how to split tokens. Consider below text.
text = 'I purchased the trendy OnePlus7'
What if you want to store the versions ‘7T’ and ‘5T’ as seperate tokens. How can you split the tokens ?
spaCy provides retokenzer.split() method to serve this purpose.
The input parameters are :
token: The token of the doc which has to be splitorths: A list of texts, matching the original token. This is to tell the retokinzer how to split the tokenheads: List of token or (token, subtoken) tuples specifying the tokens to attach the newly split subtokens to.attrs: You can pass a dictionary to set attributes on all split tokens. Attribute names mapped to list of per-token attribute values.
# Splitting tokens using retokenizer.split()
doc=nlp('I purchased the trendy OnePlus7 ')
with doc.retokenize() as retokenizer:
heads = [(doc[3], 1), doc[2]]
retokenizer.split(doc[4], ["OnePlus", "7"],heads=heads)
for token in doc:
print(token.text)
#> I
#> purchased
#> the
#> trendy
#> OnePlus
#> 7
16. spaCy pipelines
You have used tokens and docs in many ways till now. In this section, let’s dive deeper and understand the basic pipeline behind this.
When you call the nlp object on spaCy, the text is segmented into tokens to create a Doc object. Following this, various process are carried out on the Doc to add the attributes like POS tags, Lemma tags, dependency tags,etc..
This is referred as the Processing Pipeline
What are pipeline components ?
The processing pipeline consists of components, where each component performs it’s task and passes the Processed Doc to the next component. These are called as pipeline components.
spaCy provides certain in-built pipeline components. Let’s look at them.
The built-in pipeline components of spacy are :
Tokenizer: It is responsible for segmenting the text into tokens are turning aDocobject. This the first and compulsory step in a pipeline.Tagger: It is responsible for assigning Part-of-speech tags. It takes aDocas input and createsDoc[i].tagDependencyParser: It is known as parser. It is responsible for assigning the dependency tags to each token. It takes aDocas input and returns the processed DocEntityRecognizer: This component is referred as ner. It is responsible for identifying named entities and assigning labels to them.TextCategorizer: This component is called textcat. It will assign categories to Docs.EntityRuler: This component is called * entity_ruler*.It is responsible for assigning named entitile based on pattern rules. Revisit Rule Based Matching to know more.Sentencizer: This component is called **sentencizer**and can perform rule based sentence segmentation.merge_noun_chunks: It is called mergenounchunks. This component is responsible for merging all noun chunks into a single token. It has to be add in the pipeline aftertaggerandparser.merge_entities: It is called merge_entities .This component can merge all entities into a single token. It has to added after thener.merge_subtokens: It is called merge_subtokens. This component can merge the subtokens into a single token.
These are the various in-built pipeline components. It is not necessary for every spaCy model to have each of the above components.
After loading a spaCy model , you check or inspect what pipeline components are present.
How to inspect the pipeline ?
After loading the spacy model and creating a Language object nlp, you view the list of pipeline components present by default using nlp.pipe_names attribute
# Inspect a pipeline
import spacy
nlp = spacy.load("en_core_web_sm")
print(nlp.pipe_names)
#> ['tagger', 'parser', 'ner']
You can also check if a particular component is present in the pipline through nlp.has_pipe. You have to pass the name of the component like tagger , ner ,textcat as input.
# Check if pipeline component present
nlp.has_pipe('textcat')
False
Above output tells you that textcat component is not present in the current pipeline.
How to add a component to the pipeline ?
You can add a component to the processing pipeline through nlp.add_pipe() method. You have to pass the component to be added as input.
The component can also be written by you, i.e, custom made pipeline component. (We will come to this later). In case you want to add an in-built component like textcat, how to do it ?
You can use nlp.create_pipe() and pass the component name to get any in-built pipeline component.
# Add new pipeline component
nlp.add_pipe(nlp.create_pipe('textcat'))
Now , you can verify if the component was added using nlp.pipe_names().
nlp.pipe_names
#> ['tagger', 'parser', 'ner', 'textcat']
Observe that textcat has been added at the last. The order of the components signify the order in which the Doc will be processed.
How to specify where you want to add the new component?
The nlp.add_pipe() method provides various arguments for this. You can set one among before, after, first or last to True.
By default, last=True is used.
If you want textcat before ner, you can set before=ner. If you want it to be at first you can set first=True. Just remeber that you should not pass more than one of these arguments as it will lead to contradiction.
# Adding a pipeline component
nlp.add_pipe(nlp.create_pipe('textcat'),before='ner')
nlp.pipe_names
#> ['tagger', 'parser', 'textcat', 'ner']
You can see that above code has added textcat component before ner component.
How to remove, replace and rename pipepline components ?
It is always advisable to have only the necessary components in the processing pipeline. Otherwise, the component will create and store attributes which are not going to be used . This causes waste of memory and also takes more time to process.
To avoid this , you can remove unnecessary pipeline components, using nlp.remove_pipe() method .
# Printing the components initially
print(' Pipeline components present initially')
print(nlp.pipe_names)
# Removing a pipeline component and printing
nlp.remove_pipe("textcat")
print('After removing the textcat pipeline')
print(nlp.pipe_names)
#> Pipeline components present initially
#> ['tagger', 'parser', 'ner', 'textcat']
#> After removing the textcat pipeline
#> ['tagger', 'parser', 'ner']
You can rename a pipeline component giving your own custom name through nlp.rename_pipe() method.
Pass the the original name of the component and the new name you want as shown below
# Renaming pipeline components
nlp.rename_pipe(old_name='ner',new_name='my_custom_ner')
nlp.pipe_names
#> ['tagger', 'parser', 'my_custom_ner']
The name of component changed in above output.
spaCy also allows you to create your own custom pipelines. We shall discuss more on this later. When you have to use different component in place of an existing component, you can use nlp.replace_pipe() method.
nlp.replace_pipe
<bound method Language.replace_pipe of <spacy.lang.en.English object at 0x7f334488d390>>
17. Methods for Efficient processing
While dealing with huge amount of text data , the process of converting the text into processed Doc ( passing through pipeline components) is often time consuming.
In this section , you’ll learn various methods for different situations to help you reduce computational expense.
Let’s say you have a list of text data , and you want to process them into Doc onject. The traditional method is to call nlp object on each of the text data . Below is the given list.
list_of_text_data=['In computer science, artificial intelligence (AI), sometimes called machine intelligence, is intelligence demonstrated by machines, in contrast to the natural intelligence displayed by humans and animals.','Leading AI textbooks define the field as the study of "intelligent agents": any device that perceives its environment and takes actions that maximize its chance of successfully achieving its goals.','Colloquially, the term "artificial intelligence" is often used to describe machines (or computers) that mimic "cognitive" functions that humans associate with the human mind, such as "learning" and "problem solving','As machines become increasingly capable, tasks considered to require "intelligence" are often removed from the definition of AI, a phenomenon known as the AI effect.','The term military simulation can cover a wide spectrum of activities, ranging from full-scale field-exercises,[2] to abstract computerized models that can proceed with little or no human involvement','As a general scientific principle, the most reliable data comes from actual observation and the most reliable theories depend on it.[4] This also holds true in military analysis','Any form of training can be regarded as a "simulation" in the strictest sense of the word (inasmuch as it simulates an operational environment); however, many if not most exercises take place not to test new ideas or models, but to provide the participants with the skills to operate within existing ones.','ull-scale military exercises, or even smaller-scale ones, are not always feasible or even desirable. Availability of resources, including money, is a significant factor—it costs a lot to release troops and materiel from any standing commitments, to transport them to a suitable location, and then to cover additional expenses such as petroleum, oil and lubricants (POL) usage, equipment maintenance, supplies and consumables replenishment and other items','Moving away from the field exercise, it is often more convenient to test a theory by reducing the level of personnel involvement. Map exercises can be conducted involving senior officers and planners, but without the need to physically move around any troops. These retain some human input, and thus can still reflect to some extent the human imponderables that make warfare so challenging to model, with the advantage of reduced costs and increased accessibility. A map exercise can also be conducted with far less forward planning than a full-scale deployment, making it an attractive option for more minor simulations that would not merit anything larger, as well as for very major operations where cost, or secrecy, is an issue']
First , create the doc normally calling nlp() on each individual text. You can use %%timeit to know the time taken.
%%timeit
docs = [nlp(text) for text in list_of_text_data]
#> 10 loops, best of 3: 118 ms per loop
You can observe the time taken. Another efficient method of creating the doc is using nlp.pipe() method. You can pass the list as input to this. This method takes less time , as it processes the texts as a stream rather than individually.
%%timeit
docs = list(nlp.pipe(list_of_text_data))
#> 10 loops, best of 3: 57.5 ms per loop
From above output , you can observe that time taken is less using nlp.pipe() method. When the amount of data will be very large, the time difference will be very important.
Another way to keep the process efficient is using only the pipeline components you need. For example , if your problem does not use POS tags , then tagger is not necessary.
The unnecessary pipeline components can be disabled to improve loading speed and efficiency.
How to disable pipeline components in spaCy?
There are two common cases where you will need to disable pipeline components.
First case is when you don’t need the component throughout your project. In this case, you can disable the component while loading the spacy model itself. This will save you a great deal of time. It can be done through the disable argument of spacy.load() function.
Below code demonstrates how to disable loading of tagger and parser.
# disabling loading of components
nlp = spacy.load("en_core_web_sm", disable=["tagger", "parser"])
print(nlp.has_pipe('tagger'))
print(nlp.has_pipe('parser'))
#> False
#> False
The second case is when you need the component during specific times of your task, but not throughout. So, here you’ll have to load the components and their weights.
At some point, if you need a Doc object with only part-of speech tags, there is no need for ner and parser . You can use the disable keyword argument on nlp.pipe() method to temporarily disable the components during processing.
Below code passes a list of pipeline components to be disabled temporarily to the argument diable.
nlp=spacy.load('en_core_web_sm')
for doc in nlp.pipe(list_of_text_data, disable=["ner", "parser"]):
print(doc.is_tagged)
#> True
#> True
#> True
#> True
#> True
#> True
#> True
#> True
#> True
An extension of this method is to disable pipeline components for a whole block.
The context manager nlp.disable_pipes() can be used for disabling components for a whole block. You can write the code which doesn’t require the component inside the block. For any code written outside the block , the pipeline components are available.
The below example demonstrates how to disable tagger and ner in a block of code.
nlp=spacy.load('en_core_web_sm')
# Block where pipelines are disabled
with nlp.disable_pipes("tagger", "ner"):
print('-- Inside the block--')
doc = nlp(" The pandemic has disrupted the lives of may")
print(doc.is_nered)
# The block has ended ,
print('-- outside the block--')
doc = nlp("I will be tagged and parsed")
doc.is_nered
#> -- Inside the block--
#>False
#> -- outside the block--
#> True
Till now, you have seen how to add, remove, or disable the in-built pipeline components. Sometimes, the existing pipeline component may not be the best for your task.
Can you create your own pipeline components?
We shall discuss it in the following section.
18. Creating custom pipeline components
We know that a pipeline component takes the Doc as input, performs functions, adds attributes to the doc and returns a Processed Doc. Here, we shall see how to create your own pipeline component or custom pipeline component.
Custom pipeline components let you add your own function to the spaCy pipeline that is executed when you call the nlpobject on a text.
Steps to create a custom pipeline component
First, write a function that takes a Doc as input, performs neccessary tasks and returns a new Doc. Then, add this function to the spacy pipeline through nlp.add_pipe() method.
The parameters of add_pipe you have to provide :
component: You have to pass the function_name as input . This serves as our componentname: You can assign a name to the component. The component can be called using this name. If you don’t provide any ,the function_name will be taken as name of the componentfirst,last: If you want the new component to be added first or last ,you can setfirst=Trueorlast=Trueaccordingly.before,after: If you want to add the component specifically before or after another component , you can use these arguments.
Note that you can set only one among first, last, before, after arguments, otherwise it will lead to error.
Let’s discuss a set of examples to understand the implementation.
Say you want to add a pipeline component that will print the length of the doc, and also the various types of named entities present in the doc.
First step – Write a function my_custom_component() to perform the tasks on the input doc and return it.
Second step – Add the component to the pipeline using nlp.add_pipe(my_custom_component). Also , you need to insert this component after ner so that entities will bw stored in doc.ents
# Define the custom component that prints the doc length and named entities.
def my_custom_component(doc):
doc_length = len(doc)
print(' The no of tokens in the document ', doc_length)
named_entity=[token.label_ for token in doc.ents]
print(named_entity)
# Return the doc
return doc
# Load the small English model
nlp = spacy.load("en_core_web_sm")
# Add the component in the pipeline after ner
nlp.add_pipe(my_custom_component, after='ner')
print(nlp.pipe_names)
# Call the nlp object on your text
doc = nlp(" The Hindu Newspaper has increased the cost. I usually read the paper on my way to Delhi railway station ")
#> ['tagger', 'parser', 'ner', 'my_custom_component']
#> The no of tokens in the documet 24
#> ['ORG', 'GPE', 'PRODUCT']
See that the component was successfully added to the pipeline and printed the enity labels are doc length.
Pipeline component example
Let’s level up and try implementing more complex case.
Consider you have a doc and you want to add a pipeline component that can find some book names present and add add them to doc.ents.
To make this possible , you can create a custom pipeline component that uses PhraseMatcherto find book names in the doc and add the to the doc.ents attribute.
I suggest you to scroll up and have another read through Rule based matching with PhraseMatcher . Let’s first import and initialize the matcher with vocab . Next, write the pattern with names of books you want to be matched. Add the pattern to the matcher using matcher.add() by passing the pattern.
# Importing PhraseMatcher from spacy and intialize with a model's vocab
from spacy.matcher import PhraseMatcher
nlp = spacy.load("en_core_web_sm")
matcher = PhraseMatcher(nlp.vocab)
# List of book names to be matched
book_names = ['Pride and prejudice','Mansfield park','The Tale of Two cities','Great Expectations']
# Creating pattern - list of docs through nlp.pipe() to save time
book_patterns = list(nlp.pipe(book_names))
# Adding the pattern to the matcher
matcher.add("identify_books", None, *book_patterns)
You can go ahead and write the function for custom pipeline. This function shall use the matcher to find the patterns in the doc , add it to doc.ents and return the doc. Note that when matcher is applied on a Doc , it returns a tuple containing (match_id,start,end). You can extract the span using the start and end indices and store it in doc.ents
# Import Span to slice the Doc
from spacy.tokens import Span
# Define the custom pipeline component
def identify_books(doc):
# Apply the matcher to YOUR doc
matches = matcher(doc)
# Create a Span for each match and assign them under label "BOOKS"
spans = [Span(doc, start, end, label="BOOKS") for match_id, start, end in matches]
# Store the matched spans in doc.ents
doc.ents = spans
return doc
Your custom component identify_books is also ready. Final step is to add this to the spaCy’s pipeline through nlp.add_pipe(identify_books) method.
# Adding the custom component to the pipeline after the "ner" component
nlp.add_pipe(identify_books, after="ner")
print(nlp.pipe_names)
# Calling the nlp object on the text
doc = nlp("The library has got several new copies of Mansfield park and Great Expectations . I have filed a suggestion to buy more copies of The Tale of Two cities ")
# Printing entities and their labels to verify
print([(ent.text, ent.label_) for ent in doc.ents])
#> ['tagger', 'parser', 'ner', 'identify_books']
#> [('Mansfield park', 'BOOKS'), ('Great Expectations', 'BOOKS'), ('The Tale of Two cities', 'BOOKS')]
From above output , you can verify that the patterns have been identified and successfully placed under category “BOOKS”.
That’s how custom pipelines are useful in various situations.
19. Related Posts
- Train Custom NER with SpaCy
- 101 NLP Exercises
- Gensim Tutorial
- Lemmatization Approaches
- Topic Modeling
- Cosine Similarity
- Visualizing Topic Models
This article was contributed by Shrivarsheni.


I just added your web site to my blogroll, I hope you would look at doing the same.
Hello, i feel that i saw you visited my weblog so i got here to go back the want?.I am trying to in finding
things to improve my site!I suppose its adequate to use a few of
your ideas!!
OK, you outline what is a big issue. But, can’t we develop more answers in the private sector?
Please let us know when you plan to publish your book!
Keep it up!. I usually don’t post in Blogs but your blog forced me to, amazing work.. beautiful A rise in An increase in An increase in.
I encountered your site after doing a search for new contesting using Google, and decided to stick around and read more of your articles. Thanks for posting, I have your site bookmarked now.
I Am Going To have to come back again when my course load lets up – however I am taking your Rss feed so i can go through your site offline. Thanks.
A friend of mine advised me to review this site. And yes. it has some useful pieces of info and I enjoyed reading it.
I was suggested this website by my cousin. I am not sure whether this post is written by him as no one else know such detailed about my difficulty. You are wonderful! Thanks!
OK, you outline what is a big issue. But, can’t we develop more answers in the private sector?
Hi, do have a e-newsletter? In the event you don’t definately should get on that piece…this web site is pure gold!
There most be a solution for this problem, some people think there will be now solutions, but i think there wil be one.
I think I might disagree with some of your analysis. Are the figures solid?
I think this is one of the most vital info
for me. And i am glad reading your article. But want to remark on some general things,
The web site style is ideal, the articles is really nice : D.
Good job, cheers
Hi, Neat post. There is a problem with your site in web explorer, would check this?
IE still is the marketplace leader and a big component to other people will miss your great writing
due to this problem.
This text is priceless. When can I find out more?
If you wish for to obtain a great deal from this post then you have to apply
these techniques to your won website.
Very good blog! Do you have any tips and hints for
aspiring writers? I’m planning to start my own site soon but
I’m a little lost on everything. Would you propose starting with a free
platform like WordPress or go for a paid option? There are so many options out there that I’m completely overwhelmed ..
Any tips? Thank you!
Fantastic beat ! I wish to apprentice at the same time as you amend your website,
how could i subscribe for a blog website? The account helped me a
appropriate deal. I have been a little bit familiar of this
your broadcast provided vivid clear concept
Heya just wanted to give you a quick heads
up and let you know a few of the pictures aren’t loading properly.
I’m not sure why but I think its a linking issue.
I’ve tried it in two different browsers and both show the
same results.
There is a wonderful rhythm in your writing that makes every sentence flow naturally like a conversation with an old friend, and while enjoying your story I was reminded that meaningful experiences, whether created through words or activities like Color Games, are often remembered because of the emotions they create.
Hi! Would you mind if I share your blog with my twitter group?
There’s a lot of people that I think would really appreciate your
content. Please let me know. Many thanks
Definitely believe that which you said. Your favorite reason seemed to be on the web the simplest thing to be aware of.
I say to you, I definitely get irked while people consider worries that they just do not know about.
You managed to hit the nail upon the top as well as defined out the whole thing
without having side-effects , people could take a signal.
Will likely be back to get more. Thanks
Some truly nice stuff on this website , I like it.
Nice blog. Could someone with little experience do it, and add updates without messing it up? Good information on here, very informative.
you may have an ideal blog here! would you prefer to make some invite posts on my blog?
Greetings, have tried to subscribe to this websites rss feed but I am having a bit of a problem. Can anyone kindly tell me what to do?’
I think that may be an interesting element, it made me assume a bit. Thanks for sparking my considering cap. On occasion I get so much in a rut that I simply really feel like a record.
I discovered your weblog site on google and verify just a few of your early posts. Proceed to maintain up the very good operate. I simply further up your RSS feed to my MSN News Reader.
If some one wants to be updated with most recent technologies therefore
he must be pay a quick visit this site and be up to
date everyday.
Do you have a spam problem on this blog; I also
am a blogger, and I was curious about your situation; many of us have created some nice methods and we
are looking to trade methods with other folks,
why not shoot me an e-mail if interested.
Howdy! I’m at work surfing around your blog from my new apple iphone!
Just wanted to say I love reading through your blog and look forward to all your posts!
Keep up the outstanding work!
Lovely just what I was looking for. Thanks to the author for taking his clock time on this one.
Совместные закупки в Саратове подходят для людей, которые любят искать выгодные предложения. В таких заказах можно найти одежду, обувь, аксессуары, косметику, товары для детей и многое другое. Общий формат покупки делает стоимость привлекательнее и помогает экономить: https://saratov-sp.ru/
What’s up, I log on to your new stuff regularly.
Your humoristic style is awesome, keep up the good work!
I just like the helpful information you supply on your articles.
I’ll bookmark your blog and check once more here frequently.
I am rather certain I’ll learn many new stuff proper
here! Best of luck for the following!
These kind of posts are always inspiring and I prefer to read quality content so I happy to find many good point here in the post. writing is simply wonderful! thank you for the post
I wrote down your blog in my bookmark. I hope that it somehow did not fall and continues to be a great place for reading texts.
I think I might disagree with some of your analysis. Are the figures solid?
I appreciate, cause I found just what I was looking for. You’ve ended my four day long hunt! God Bless you man. Have a great day. Bye -.
thank, I thoroughly enjoyed reading your article. I really appreciate your wonderful knowledge and the time you put into educating the rest of us.
Its like you read my mind! You seem to know a lot about this, like you wrote the book in it or something. I think that you can do with some pics to drive the message home a bit, but other than that, this is wonderful blog. A great read. I’ll certainly be back.
купить справку о здоровье купить справку онлайн
This is one very informative blog. I like the way you write and I will bookmark your blog to my favorites.
Great post, keep up the good work, I hope you don’t mind but I’ve added on my blog roll.
Viagra merupakan salah satu terapi yang tersedia untuk mengatasi disfungsi ereksi.
Namun, penggunaannya harus disesuaikan dengan kondisi masing-masing individu.
Rasmiy sayt to’liq o’zbek tilida ishlaydi va foydalanuvchilar uchun qulay interfeysga ega.
Rasmiy saytdagi kazino bo’limi yetakchi provayderlardan ko’plab o’yinlarni o’z ichiga oladi.
888 [url=http://www.888stars9.com/]888[/url]
Foydalanuvchilar rasmiy saytda yirik jahon turnirlari va mahalliy ligalarga stavka qo’yishlari mumkin.
888Starz O’zbekistondagi o’yinchilar uchun mavjud eng so’nggi bonus va takliflarni ajratib beradi.
888Starz yangi hisobni bir necha usulda, atigi bir necha daqiqada yaratish imkonini beradi.
Heya just wanted to give you a quick heads up and let
you know a few of the images aren’t loading correctly.
I’m not sure why but I think its a linking issue. I’ve tried it in two different web browsers and both
show the same results.
I’m gone to say to my little brother, that he should also go to see this webpage on regular basis to get updated from newest news.
This blog post is excellent, probably because of how well the subject was developed. I like some of the comments too though I could prefer we all stay on the subject in order add value to the subject!
I appreciate how your writing avoids unnecessary exaggeration and allows the story itself to create interest because that kind of sincerity is becoming rare online, and it reminded me of another forum conversation where wild ape 3258 was shared naturally.
Our communities really need to deal with this.
Wow, amazing blog layout! How long have you been blogging for? you made blogging look easy. The overall look of your site is great, as well as the content!
I came across your article while casually exploring different stories online, and I was honestly surprised by how your words turned a simple topic into something meaningful and memorable, which reminded me of another enjoyable conversation where YELLOW BAT was mentioned naturally among readers sharing their experiences.
Wonderful website. Lots of helpful information here.
I am sending it to several friends ans additionally sharing in delicious.
And certainly, thank you to your sweat!
Advanced reading here!
Hi there! I just wanted to ask if you ever have any trouble with hackers? My last blog (wordpress) was hacked and I ended up losing several weeks of hard work due to no back up. Do you have any solutions to protect against hackers?
I simply could not leave your site before suggesting that I actually enjoyed the usual info a person supply in your visitors? Is going to be back often to inspect new posts
Spot on with this write-up, I truly believe this website requirements a lot much more consideration. I’ll probably be once more to read much much more, thanks for that info.
Nice response in return of this question with firm arguments
and telling the whole thing about that.
Oh my goodness! Awesome article dude! Thank you, However I am
having difficulties with your RSS. I don’t understand
the reason why I can’t join it. Is there anyone else getting identical RSS issues?
Anyone who knows the solution will you kindly respond?
Thanks!!
Greetings! Quick question that’s entirely off topic. Do you know how to make your site mobile friendly?
My blog looks weird when viewing from my iphone4. I’m trying to
find a template or plugin that might be able to correct this issue.
If you have any recommendations, please share. Appreciate it!
I read this post fully concerning the difference of newest and earlier technologies, it’s remarkable article.
There is perceptibly a lot to identify about this. I consider you made some good points in features also.
Explore Detroit Pistons vs Cleveland Cavaliers match player stats for a full statistical recap featuring points, rebounds, assists, shooting percentages, and defensive plays. The analysis highlights the players who delivered the biggest performances while influencing the final score. https://www.tigerscores.com/detroit-pistons-vs-cleveland-cavaliers-match-player-stats/
1win balance kg вывод [url=http://1win18094.help/]http://1win18094.help/[/url]
1win ghid in romana [url=http://1win62840.help]http://1win62840.help[/url]
Very energetic article, I liked that a lot.
Will there be a part 2?
I every time spent my half an hour to read this website’s
articles everyday along with a mug of coffee.
https://facesave.ru/novosti/chto-takoe-i-dlya-chego-nuzhny-analizy
Hi there are using WordPress for your site platform?
I’m new to the blog world but I’m trying to get started and set up my own. Do you need
any coding expertise to make your own blog? Any help would be greatly appreciated!
Hey I am so excited I found your blog, I really found you by error, while
I was looking on Google for something else, Regardless I am here now and would just like to say thanks for a fantastic post and a all round exciting blog (I also love the theme/design), I don’t have
time to browse it all at the minute but I have saved
it and also included your RSS feeds, so when I have time I will be back to read a lot more, Please do keep up the fantastic work.
What made you first develop an interest in this topic?
เนื้อหานี้ อ่านแล้วเข้าใจง่าย ครับ
ดิฉัน เพิ่งเจอข้อมูลเกี่ยวกับ เรื่องที่เกี่ยวข้อง
ซึ่งอยู่ที่ bk88
เผื่อใครสนใจ
มีการยกตัวอย่างที่เข้าใจง่าย
ขอบคุณที่แชร์ ข้อมูลที่มีประโยชน์ นี้
จะรอติดตามเนื้อหาใหม่ๆ ต่อไป
I like the valuable information you provide in your
articles. I’ll bookmark your blog and check again here regularly.
I am quite sure I will learn many new stuff right here! Good
luck for the next!
Quality posts is the key to interest the users to pay a quick visit the web page, that’s what this website is
providing.
Thank you for any other informative web site.
Where else could I am getting that type of info written in such a perfect approach?
I’ve a mission that I’m just now operating on, and I’ve been at the glance
out for such info.
This is a really good tip especially to those new to the
blogosphere. Simple but very precise information… Thanks for
sharing this one. A must read article!
Здорова, народ Близкий человек уже неделю в запое Соседи стучат в стену Скорая не приедет на такой вызов Короче, врачи вытащили с того света — наркологический стационар с круглосуточным наблюдением Врачи наблюдали 24/7 В общем, жмите чтобы сохранить — наркологический стационар москва [url=https://narkologicheskij-staczionar-moskva-lba.ru]https://narkologicheskij-staczionar-moskva-lba.ru[/url] Звоните прямо сейчас Перешлите тем кто в отчаянии
Thanks for sharing such a good idea, paragraph is fastidious, thats why i
have read it completely
I’m curious to find out what blog platform you have been utilizing?
I’m having some minor security issues with my latest site and I’d
like to find something more safeguarded. Do you have any solutions?
Greetings! Very useful advice in this particular post!
It is the little changes that will make the greatest changes.
Many thanks for sharing!
There is certainly a great deal to know about this issue.
I really like all of the points you made.
Incredible points. Sound arguments. Keep up the great work.
I do agree with all the ideas you have offered in your post.
They’re very convincing and can certainly work. Still, the posts are very short for novices.
May just you please extend them a little from subsequent
time? Thanks for the post.
I am glad to be a visitor of this thoroughgoing web blog ! , regards for this rare information! .
I am lucky that I discovered this website , precisely the right info that I was searching for! .
Can I just say what a relief to seek out someone who actually knows what theyre speaking about on the internet. You positively know find out how to bring a problem to mild and make it important. Extra individuals have to read this and perceive this side of the story. I cant believe youre not more in style because you positively have the gift.
It’s very straightforward to find out any topic on net as compared to textbooks,
as I found this paragraph at this web page.
Get complete game insights with Knicks vs San Antonio Spurs match player stats. Explore detailed player numbers, including points, rebounds, assists, blocks, steals, and shooting percentages from this exciting NBA contest. https://www.tigerscores.com/knicks-vs-san-antonio-spurs-match-player-stats/
Приветствую народ Мой брат уже две недели в запое Родные просто в шоке Платная наркология — бешеные счета Короче, единственное что сработало — вывод из запоя санкт-петербург стационар с палатой Положили в отдельную палату В общем, не потеряйте контакты — вывод из запоя в стационаре наркологии [url=https://vyvod-iz-zapoya-v-staczionare-sankt-peterburg-zqe.ru]вывод из запоя в стационаре наркологии[/url] Не надейтесь на чудо Это может спасти жизнь близкого
Marvelous, what a blog it is! This web site gives helpful data to us, keep it up.
I favored your idea there, I tell you blogs are so helpful sometimes like looking into people’s private life’s and work.At times this world has too much information to grasp. Every new comment wonderful in its own right.
We can see that we need to develop policies to deal with this trend.
I genuinely admire how you build your ideas one step at a time because nothing feels rushed, and by the time I reached the end I realized I had the same sense of quiet curiosity that I felt when I first heard people talking about table game ph in a community forum.
This post is truly a good one it helps new web users, who are wishing
in favor of blogging.
I favored your idea there, I tell you blogs are so helpful sometimes like looking into people’s private life’s and work.At times this world has too much information to grasp. Every new comment wonderful in its own right.
Howdy just wanted to give you a brief heads up and let
you know a few of the images aren’t loading properly.
I’m not sure why but I think its a linking issue. I’ve tried it in two different web browsers
and both show the same results.
Hey, I think your site might be having browser compatibility issues.
When I look at your website in Firefox, it looks fine but when opening in Internet Explorer, it has some overlapping.
I just wanted to give you a quick heads up!
Other then that, wonderful blog!
I have read many online articles, but your storytelling approach feels refreshingly natural because your words carry personality and depth instead of just presenting information, and that sense of discovery reminds me of how people become interested in concepts like Table games.
Nice blog here! Also your website loads up very fast!
What web host are you using? Can I get your affiliate link to your host?
I wish my site loaded up as quickly as yours lol
I really like your blog.. very nice colors & theme.
Did you make this website yourself or did you hire someone to do it for you?
Plz respond as I’m looking to construct my own blog and would
like to know where u got this from. cheers
It’s amazing in favor of me to have a web site, which is
good in favor of my experience. thanks admin
Attractive section of content. I simply stumbled upon your weblog and in accession capital to assert that
I acquire actually enjoyed account your blog posts. Anyway I will
be subscribing on your augment or even I achievement you get right of entry
to persistently fast.
I am really enjoying the theme/design of your website.
Do you ever run into any browser compatibility issues? A couple of my blog visitors have complained about my blog not operating correctly in Explorer but looks great in Opera.
Do you have any tips to help fix this problem?
Hi! Do you know if they make any plugins to protect against hackers?
I’m kinda paranoid about losing everything I’ve worked hard on. Any suggestions?
Hi there, every time i used to check website posts here in the
early hours in the break of day, since i enjoy to find out more and more.
This blog was… how do I say it? Relevant!! Finally I’ve found something
that helped me. Cheers!
Your means of explaining the whole thing in this piece of writing is in fact good,
every one be able to effortlessly understand it, Thanks a lot.
I constantly spent my half an hour to read this website’s articles every day along with
a cup of coffee.
Hi, all is going nicely here and ofcourse every one is sharing data, that’s truly good, keep up writing.
Find the updated detroit pistons vs milwaukee bucks match player stats featuring complete box scores, points, rebounds, assists, steals, and blocks. Stay informed with detailed player statistics and game insights from this matchup. https://www.tigerscores.com/detroit-pistons-vs-milwaukee-bucks-match-player-stats/
Menjaga kesehatan pria tidak hanya bergantung pada obat.
Pola makan seimbang, olahraga teratur, dan tidur yang cukup juga berperan penting.
Everything for Minecraft topminecraftworldseeds com in one place: mods, skins, maps, texture packs, and the best seeds for survival, creativity, and adventure. Collections of popular add-ons, installation instructions, updates, and secure downloads for different versions of the game.
You made some really good points there. I looked on the net for additional information about the issue and found most individuals will go along with
your views on this web site.
Viagra merupakan salah satu terapi yang tersedia untuk mengatasi disfungsi ereksi.
Namun, penggunaannya harus disesuaikan dengan kondisi masing-masing individu.
This paragraph offers clear idea designed for the new users of blogging, that truly how to
do blogging.
ЖК 26 ParkView подойдет людям, которые ценят высокий уровень комфорта и стремятся приобрести недвижимость в перспективном районе Москвы. Комплекс сочетает удобство городской жизни и современные стандарты качества – жк 26 парквью тимирязевская
I blog often and I truly appreciate your content.
This great article has truly peaked my interest.
I’m going to take a note of your blog and keep checking for new details about once per
week. I opted in for your RSS feed too.
hello!,I like your writing so much! percentage we be in contact more approximately your post
on AOL? I require a specialist in this house to solve my problem.
May be that’s you! Looking ahead to peer you.
บทความนี้ น่าสนใจดี ค่ะ
ดิฉัน ได้อ่านบทความที่เกี่ยวข้องกับ หัวข้อที่คล้ายกัน
ที่คุณสามารถดูได้ที่ mm88bet
น่าจะถูกใจใครหลายคน
มีการยกตัวอย่างที่เข้าใจง่าย
ขอบคุณที่แชร์ บทความคุณภาพ นี้
และอยากเห็นบทความดีๆ
แบบนี้อีก
Viagra hanya boleh digunakan sesuai dosis yang dianjurkan. Menggunakan dosis yang berlebihan tidak meningkatkan efektivitas dan dapat meningkatkan risiko
efek samping.
dr güncel
Everything for Minecraft https://topminecraftworldseeds.com in one place: mods, skins, maps, texture packs, and the best seeds for survival, creativity, and adventure. Collections of popular add-ons, installation instructions, updates, and secure downloads for different versions of the game.
¡Qué locura total, chamigos! Acá les escribe Derlis
desde Ciudad del Este.
Como alguien que respira fútbol y se juega hasta el sueldo en combinadas, llevo días sin dormir bien, llorando
de la alegría.
Cuando arrancamos este Mundial 2026, casi me da un infarto al perder 4-1 contra Estados
Unidos, una vergüenza terrible. Pero como manda nuestra historia, resurgimos de las
cenizas: vencimos a los turcos 1-0 sudando sangre en la cancha y después aguantamos a muerte para
sacar ese 0-0 contra Australia.
¡El partido contra Alemania me quitó diez años de vida y
me devolvió la fe! El mundo entero de los pronósticos nos daba por
muertos, pero aguantamos como verdaderos leones el
1-1 hasta el final de la prórroga. ¡Los eliminamos 4-3
desde los doce pasos, un milagro hermoso y sangriento!
¡Con lo que gané en esa apuesta a la sorpresa me pago las deudas de todo el año y festejo un mes
seguido!
Se viene el monstruo de Francia en octavos y me juego mi destino entero por
mis muchachos. ¡Que nos den por perdedores, mucho
mejor, así paga más mi apuesta!
¡La garra guaraní no se rinde jamás, nos vemos
en la final del mundo!
If some one desires expert view about running a blog then i recommend him/her to go to see
this weblog, Keep up the good job.
Hey there! I know this is kinda off topic nevertheless I’d figured I’d ask.
Would you be interested in exchanging links or maybe guest writing a blog post or vice-versa?
My site goes over a lot of the same subjects as yours and
I believe we could greatly benefit from each other.
If you’re interested feel free to shoot me an email.
I look forward to hearing from you! Fantastic
blog by the way!
What’s up Dear, are you genuinely visiting this site daily, if so after that you
will absolutely obtain nice know-how.
Hmm is anyone else having problems with the pictures on this blog loading?
I’m trying to figure out if its a problem on my end or if it’s the blog.
Any feed-back would be greatly appreciated.
This post will help the internet visitors for creating new
web site or even a blog from start to end.
¡No lo puedo creer, hermano! Me llamo Miguel desde Asunción.
Como buen timbero y paraguayo de pura cepa, siento que el corazón me va a reventar
de tanta emoción.
Cuando arrancamos este Mundial 2026, casi me da un infarto cuando los yanquis
nos metieron ese humillante 4-1. Pero ahí salió a relucir el orgullo de nuestra tierra: vencimos a
los turcos 1-0 sudando sangre en la cancha y con el alma en un hilo
clasificamos raspando, empatando a cero con los australianos.
¡Lo que vivimos contra los alemanes fue épico, digno
de una película! El mundo entero de los pronósticos nos daba por
muertos, pero aguantamos como verdaderos leones el 1-1 hasta el final de la prórroga.
¡Los eliminamos 4-3 desde los doce pasos, un milagro hermoso y sangriento!
¡Reventé mi cuenta en la casa de apuestas porque le puse plata a que pasábamos y pagaban una cuota de locura total!
Ahora se nos viene Francia este 4 de julio y apuesto el auto, la casa y la vida a mi
querida Albirroja. ¡No me importa si la lógica dice que nos golean, yo muero con la mía y apuesto todo a
una nueva hazaña!
¡A dejar hasta la última gota de sangre, vamos mi Paraguay querido!
Simply wish to say the frankness in your article is surprising.
888starz O’zbekistondagi o’yinchilar uchun kazino va sport tikishlarini bitta rasmiy resursda taqdim etadi.
Eksklyuziv 888Games seriyasi va jonli stollar haqiqiy o’yin atmosferasini yaratadi.
888starz uz [url=https://freewriterai.com/]888starz uz[/url]
Rasmiy saytda mashhur va o’ziga xos sport turlarining keng ro’yxati mavjud.
Depozit paytida 888UZ777 promokodidan foydalanish eng katta bonusni ta’minlaydi.
888starz turli depozit usullari — bank kartasi, hamyon va kripto — bilan ishlaydi.
Sildenafil adalah bahan aktif yang terdapat dalam Viagra dan bekerja
dengan meningkatkan aliran darah ke area tertentu saat terjadi rangsangan seksual.
Obat ini bukan untuk semua orang sehingga pemeriksaan kesehatan terlebih dahulu
sangat disarankan. Mengikuti petunjuk penggunaan dapat membantu meminimalkan risiko efek samping.
Hi, possibly i’m being a little off topic here, but I was browsing your site and it looks stimulating. I’m writing a blog and trying to make it look neat, but everytime I touch it I mess something up. Did you design the blog yourself?
Saat mencari informasi tentang Viagra Indonesia, sebaiknya gunakan sumber yang terpercaya.
Banyak artikel di internet membahas manfaat dan penggunaan sildenafil, namun tidak semuanya memberikan informasi yang akurat.
Konsultasi dengan dokter tetap menjadi langkah terbaik
sebelum memutuskan menggunakan obat apa pun.
The supported exchanges cover nearly everything I use for crypto trading. CryptoRobotics Official Platform
doktor kbb
https://dewa-togel.us.com/
https://dewatogel.in.net/
My spouse and I absolutely love your blog and find a lot of your post’s to be just what I’m looking for.
can you offer guest writers to write content in your case?
I wouldn’t mind producing a post or elaborating
on a few of the subjects you write related to here. Again, awesome web log!
Статья посвящена анализу текущих трендов в медицине и их влиянию на жизнь людей. Мы рассмотрим новые технологии, методы лечения и значение профилактики в обеспечении долголетия и здоровья.
Выяснить больше – [url=https://formyangel.ru/put-k-trezvosti-kak-podderzhat-blizkogo-v-borbe-s-zavisimostyu/]помощь в лечении алкоголизма[/url]
You’re so interesting! I do not believe I’ve read through
something like that before. So nice to discover
another person with original thoughts on this subject. Really..
thank you for starting this up. This web site is one thing that is needed on the internet, someone with a little originality!
Slide in and scope out top casino hits ebony dp porno
I admire how your storytelling quietly builds emotion without ever feeling dramatic, allowing readers to become completely immersed, and it reminded me of a relaxed evening conversation where YELLOW BAT came up naturally while discussing unexpected online discoveries.
Thanks for sharing this article. https://docs-demo.net/new-update-531
Друзья ситуация жуткая. Столкнулся с такой бедой. Брат пьёт без остановки. Жена в слезах. Скорая не едет. Короче, единственное что реально помогло — вывод из запоя дешево и сердито. Поставили систему. В общем, вся инфа вот здесь — запой вызов на дом [url=https://vyvod-iz-zapoya-na-domu-samara-bcd.ru]https://vyvod-iz-zapoya-na-domu-samara-bcd.ru[/url] Каждая минута дорога. Скиньте другу в беде.
hello!,I like your writing so so much! percentage we
communicate extra approximately your post on AOL?
I need an expert on this space to resolve my problem. Maybe that is you!
Looking ahead to peer you.
kandulu
doku
Этот текст посвящён сложным аспектам зависимости и её влиянию на жизнь человека. Мы обсудим психологические, физические и социальные последствия зависимого поведения, а также важность своевременного обращения за помощью.
Где можно узнать подробнее? – [url=https://vmeste-masterim.ru/sila-sozidaniya-kak-prikladnoe-tvorchestvo-i-rukodelie-vozvrashhayut-mentalnoe-zdorove-v-krizisnye-periody.html]лечение в стационаре алкоголизма[/url]
Hello to all, the contents present at this web page
are in fact amazing for people experience, well, keep up the
good work fellows.
Thank you, I have just been searching for information about this topic for ages and yours is the greatest I’ve discovered till now. But, what about the conclusion? Are you sure about the source?
Wow, amazing blog layout! How long have you been blogging for? you make blogging look easy. The overall look of your site is wonderful, let alone the content!
aslı
В этой статье мы рассматриваем разрушительное влияние зависимости на жизнь человека. Обсуждаются аспекты, такие как здоровье, отношения и профессиональные достижения. Читатели узнают о необходимости обращения за помощью и о путях к восстановлению.
ТОП-5 причин узнать больше – [url=https://lechenie-simptomy.ru/vyvod-iz-zapoya-na-domu-cena]выведение из запоя[/url]
Very nice post. I simply stumbled upon your blog and wished to mention that I’ve really enjoyed browsing your blog posts.
In any case I will be subscribing to your rss feed and I am hoping you write
again soon!
smile
Its like you read my thoughts! You appear to understand a lot approximately this, such as you wrote the e-book in it or something.
I think that you just could do with some p.c. to pressure the message house a little bit, however instead of that, this is magnificent blog.
An excellent read. I will definitely be back.
My partner and I stumbled over here coming from a different web address and
thought I should check things out. I like what I
see so i am just following you. Look forward to checking
out your web page repeatedly.
Link exchange is nothing else however it is just placing the other person’s weblog link on your page at appropriate
place and other person will also do similar in support of you.
deniz
Our communities really need to deal with this.
Друзья ситуация жуткая. Столкнулся с такой бедой. Брат пьёт без остановки. Дети не спят ночами. Скорая не едет. Короче, единственное что реально помогло — вывести из запоя на дому качественно. Отошёл за полчаса. В общем, вся инфа вот здесь — вывести из запоя [url=https://vyvod-iz-zapoya-na-domu-samara-jkl.ru]вывести из запоя[/url] Каждая минута дорога. Перешлите тому кому надо.
I know this site offers quality dependent articles or
reviews and extra information, is there any other
site which gives these stuff in quality?
Very good write-up. I absolutely love this site. Stick with it!
Thank you a lot for sharing this with all folks you actually realize what you are talking approximately!
Bookmarked. Kindly also visit my site =). We could have
a link trade arrangement between us
Hi to every body, it’s my first pay a visit of this weblog;
this website carries remarkable and really excellent data designed for readers.
Pretty great post. I simply stumbled upon your blog and wanted to
say that I have really enjoyed browsing your weblog posts.
In any case I will be subscribing for your feed and
I hope you write again soon!
Fantastic items from you, man. I have take note your
stuff previous to and you’re simply extremely magnificent.
I really like what you’ve obtained here, really like what you’re stating and
the best way during which you are saying it.
You make it enjoyable and you continue to take care of to stay it smart.
I can’t wait to read far more from you. This is really a terrific web site.
Our family had similar issues, thanks.
You are not right. I am assured. I can prove it. Write to me in PM, we will talk.
This is really interesting, You’re a very skilled blogger. I have joined your feed and look forward to seeking more of your fantastic post. Also, I have shared your website in my social networks!
I like this weblog very much so much great info .
You are not right. I am assured. I can prove it. Write to me in PM, we will talk.
I think I will become a great follower.Just want to say your post is striking. The clarity in your post is simply striking and i can take for granted you are an expert on this subject.
The vivid imagery in your latest piece is so incredibly well-crafted that it immediately triggered a wave of nostalgia for the bright, dynamic festivals where we used to gather around and watch traditional Color Games unfold.
Hello it’s me, I am also visiting this website daily,
this web site is truly nice and the viewers are
actually sharing good thoughts.
В этой статье рассматриваются различные аспекты избавления от зависимости, включая физические и психологические методы. Мы обсудим поддержку, мотивацию и стратегии, которые помогут в процессе выздоровления. Читатели узнают, как преодолеть трудности и двигаться к новой жизни без зависимости.
Не упусти важное! – [url=https://zdorovieinform.ru/kak-perezhit-zapoj-ot-pervyh-simptomov-do-nastojashhego-vyzdorovlenija/]клиника плюс нижний новгород[/url]
Kraken — это этноним, которое ассоциируется всего тьмой, масштабом и надежностью. Оно соблазняет чуткость свой в доску узнаваемостью а также ярким образом. Через нынешному раскладу равным образом постоянному развитию, Kraken остается потребованным подбором для этих, кто такой предпочитает штрих, уют и четкость на результате.[url=https://vkrn.site/kraken-sayt-nark-15125.html]kraken сайт kr2link co
[/url]
This is definitely a wonderful webpage, thanks a lot..
I think this is among the so much vital info for me. And i’m happy reading your article. But wanna remark on few common issues, The site style is wonderful, the articles is really excellent : D. Just right job, cheers
Lovely just what I was looking for. Thanks to the author for taking his clock time on this one.
I feel that is among the so much significant info for me. And i am satisfied studying your article. However should commentary on some basic issues, The site style is ideal, the articles is in reality excellent : D. Excellent activity, cheers
регистрация в 1вин [url=http://1win67466.online/]http://1win67466.online/[/url]
aslı tarcan
mostbet лимиты пополнения [url=mostbet77382.online]mostbet77382.online[/url]
capil
I like what you guys tend to be up too. This sort of clever work and exposure!
Keep up the fantastic works guys I’ve incorporated you guys to my own blogroll.
Aw, this was a very nice post. In idea I wish to put in writing like this moreover taking time and precise effort to make an excellent article! I procrastinate alot and by no means seem to get something done.
Of course, what a great site and informative posts, I will add backlink – bookmark this site? Regards, Reader
What’s Happening i’m new to this, I stumbled upon this I’ve found It positively useful and it has aided me out loads. I hope to contribute & help other users like its aided me. Great job.
After looking into a handful of the blog articles on your web page, I honestly appreciate your technique of blogging.
I bookmarked it to my bookmark webpage list and will be checking back soon.
Please check out my website as well and tell me your opinion.
Oh my goodness! an amazing article. Great work.
Do you have a spam issue on this website; I also am a blogger,
and I was wanting to know your situation; we have created some nice procedures
and we are looking to exchange strategies with others, please shoot me an email if interested.
I’ve read several just right stuff here.
Definitely worth bookmarking for revisiting.
I wonder how much attempt you place to create this sort of
excellent informative site.
Thank you for sharing your info. I really appreciate your efforts and I
am waiting for your further post thanks once again.
Have you given any kind of thought at all with converting your current web-site into French? I know a couple of of translaters here that will would certainly help you do it for no cost if you want to get in touch with me personally.
If wings are your thing, Tinker Bell’s sexy Halloween costume design is all grown up.
Nice read, I just passed this onto a colleague who was doing some research on that. And he just bought me lunch as I found it for him smile Therefore let me rephrase that: Thank you for lunch!
have already been reading ur blog for a couple of days. really enjoy what you posted. btw i will be doing a report about this topic. do you happen to know any great websites or forums that I can find out more? thanks a lot.
It’s continually awesome when you can not only be informed, but also entertained! I’m sure you had fun writing this article. Regards, Clotilde.
This is an awesome entry. Thank you very much for the supreme post provided! I was looking for this entry for a long time, but I wasn’t able to find a honest source.
Hi there to every one, the contents existing
at this site are truly amazing for people knowledge, well, keep up the nice work fellows.
Wow, this paragraph is fastidious, my younger sister is
analyzing such things, so I am going to convey her.
It’s very easy to find out any matter on web as compared to textbooks, as
I found this paragraph at this website.
Hi! I’m at work surfing around your blog from my new
iphone 4! Just wanted to say I love reading through your blog and look forward to all your posts!
Carry on the outstanding work!
Good day! I know this is kinda off topic nevertheless I’d figured I’d
ask. Would you be interested in trading links or maybe guest authoring a blog post
or vice-versa? My website addresses a lot of the same subjects as yours
and I feel we could greatly benefit from each other.
If you might be interested feel free to shoot me an email.
I look forward to hearing from you! Fantastic blog by the
way!
Review complete game information featuring player achievements, scoring leaders, and statistical breakdowns. The San Antonio Spurs vs Memphis Grizzlies Match Player Stats provides valuable basketball updates for fans following the competition.
https://www.tigerscores.com/san-antonio-spurs-vs-memphis-grizzlies-match-player-stats/
Hi! I’m at work surfing around your blog from my new iphone!
Just wanted to say I love reading through your blog and look forward to all your posts!
Carry on the superb work!
Sometimes the most interesting part of game design conversations is how people connect theme and emotion, and Treasures Of Aztec is often used in those comparisons.
Amazing blog! Do you have any recommendations for aspiring writers?
I’m hoping to start my own website soon but I’m a little lost on everything.
Would you propose starting with a free platform like WordPress or go for a paid option?
There are so many options out there that I’m totally overwhelmed ..
Any suggestions? Many thanks!
Этот медицинский обзор сосредоточен на последних достижениях, которые оказывают влияние на пациентов и медицинскую практику. Мы разбираем инновационные методы лечения и исследований, акцентируя внимание на их значимости для общественного здоровья. Читатели узнают о свежих данных и их возможном применении.
Расширить кругозор по теме – [url=http://evemakeup.ru/secrets/zdorovie/kak-psihiatr-opredelyaet-psihicheskoe-zabolevanie.html]Вывод из запоя анонимно в Москве[/url]
I do believe your audience could very well want a good deal more stories like this carry on the excellent hard work.
I once came across a beautifully written reflection that felt like a slow unfolding dream, and somewhere inside that gentle narrative flow, Magic Ace Wild Lock appeared as a natural detail woven into the writer’s broader storytelling rhythm.
I don’t even know how I ended up here, but I thought this post was great.
I don’t know who you are but definitely you are going to a famous blogger if you are not already 😉 Cheers!
anal fissür ameliyatı
anal fissür ameliyatı
anal fissür ameliyatı
anal fissür ameliyatı
anal fissür ameliyatı
Мамы и папы слушайте Каждый день как на работу Вечно больной и уставший Короче, реально удобный и простой — школа онлайн с государственным аттестатом Учителя настоящие профи В общем, там программа и условия — сайт онлайн образования [url=https://shkola-onlajn-bxf.ru]https://shkola-onlajn-bxf.ru[/url] Переходите на дистанционное обучение Перешлите другим родителям
These kind of posts are always inspiring and I prefer to read quality content so I happy to find many good point here in the post. writing is simply wonderful! thank you for the post
Very Interesting Information! Thank You For Thi Information!
I appreciate, cause I found just what I was looking for. You’ve ended my four day long hunt! God Bless you man. Have a great day. Bye -.
Your resources are well developed.
I have to say this post was certainly informative and contains useful content for enthusiastic visitors. I will definitely bookmark this website for future reference and further viewing. cheers a bunch for sharing this with us!
Nice post.Very useful info specifically the last part 🙂 Thank you and good luck.
Слушайте кто ищет выход Учителя которые только и знают что орать Только оценки и нервотрёпка Короче, школа без стресса и скандалов — онлайн обучение для детей в удобном темпе Аттестат настоящий В общем, жмите чтобы не потерять — школьное образование онлайн [url=https://shkola-onlajn-lzn.ru]школьное образование онлайн[/url] Переходите на нормальное обучение Перешлите другим родителям
Please let me know if you’re looking for a article writer for your weblog.
You have some really good articles and I feel I would be a good asset.
If you ever want to take some of the load off, I’d absolutely love
to write some articles for your blog in exchange for
a link back to mine. Please blast me an email if interested.
Cheers!
bonjour I love Your Blog can not say I come here often but im liking what i c so far….
Greetings from Colorado! I’m bored to death at work so I
decided to check out your blog on my iphone during lunch break.
I enjoy the info you provide here and can’t wait to
take a look when I get home. I’m shocked at how fast your blog
loaded on my mobile .. I’m not even using WIFI, just 3G ..
Anyways, awesome site!
of course like your website but you have to check the spelling on quite a
few of your posts. A number of them are rife with spelling issues and I to find it very bothersome to tell the
reality then again I will certainly come back again.
Pretty impressive article. I just stumbled upon your site and wanted to say that I have really enjoyed reading your opinions. Any way I’ll be coming back and I hope you post again soon.
Профессионально проводим уничтожение всех видов насекомых в Красноярске Удаление грибка и плесени
Excellent blog here! Also your website quite a
bit up very fast! What web host are you using? Can I am getting your affiliate hyperlink
for your host? I wish my web site loaded up as fast
as yours lol
How come you do not have your website viewable in mobile format? cant see anything in my Droid.
В этой публикации мы предложим ряд рекомендаций по избавлению от зависимостей и успешному восстановлению. Мы обсудим методы привлечения поддержки и важность самосознания. Эти советы помогут людям вернуться к нормальной жизни и стать на путь выздоровления.
Погрузиться в детали – [url=https://qllq.ru/zdorove/ostryj-semejnyj-krizis-kak-raspoznat-pogranichnye-sostoyaniya-blizkogo-cheloveka-pri-tyazheloj-intoksikatsii/]капельница на дому анонимно[/url]
I visited multiple blogs except the audio quality for audio songs current at this website is actually excellent.
Эта статья освещает различные аспекты освобождения от зависимости и пути к выздоровлению. Мы обсуждаем важность осознания своей проблемы и обращения за помощью. Читатели получат практические советы о том, как преодолевать трудности и строить новую жизнь без зависимости.
Дополнительно читайте здесь – [url=https://parasite-eliminator.ru/2026/06/16/kak-provesti-glubokuyu-detoksikatsiyu-ot-pervyh-signalov-do-polnogo-vosstanovleniya/]наркология на дом[/url]
Народ кто в Питере живет. Цены задрали как на золото. То фасады перекошены. Короче, реальное производство в Питере — купить готовую кухню в спб с фурнитурой. Сделали за три недели. В общем, сохраняйте — заказать кухню [url=https://zakazat-kuhnyu-qwe.ru]заказать кухню[/url] Не ведитесь на салоны. Сам мучался теперь знаю.
Rent free our casino games live in your head after playing вавада казино
Hey would you mind stating which blog platform you’re using?
I’m looking to start my own blog soon but I’m having a tough time deciding between BlogEngine/Wordpress/B2evolution and Drupal.
The reason I ask is because your layout seems different then most blogs
and I’m looking for something unique.
P.S My apologies for getting off-topic but I had to ask!
The quantity of old women in each videos and the number
of females in common seem to be evenly distributed. Grandma on another grandma, mama on another
grandpa, mama on young girl, grandma on young male, and so on. website http://www.neugasse.net/landonalonso2
Very nice post. I just stumbled upon your weblog and wished
to say that I’ve really enjoyed surfing around your blog posts.
In any case I’ll be subscribing to your feed and I hope you write again soon!
Nearly every porn genre, including black variations, can be found on Ebony
Tube. In the Ebony Mom thumbnail, there is a black cougar getting nailed, and a young beauty getting it from behind in the hall photo
for Ebony Teen. Merely the tip of the iceberg of the page’s list of areas include Ebony Squirting, Ebony Threesomes, Ebony
Public, and Ebony Creampies. ebony deep throat videos https://ladygracebandb.com/author/latonyam89150/
This is very attention-grabbing, You’re an excessively professional blogger.
I have joined your feed and look forward to looking for more of your great post.
Also, I’ve shared your site in my social networks
Good post. I’m going through many of these
issues as well..
Столкнулся с ситуацией и начал разбираться — какой способ действительно работает для международных платежей. Вот здесь всё по полочкам расписано: прием платежей из-за границы [url=https://mezhdunarodnye-platezhi-fra.ru]https://mezhdunarodnye-platezhi-fra.ru[/url] Ключевой момент, на который стоит обратить внимание — курс конвертации может существенно отличаться. Дело в том, что любой трансграничный платёж — связан с разными типами комиссий. И ещё один момент — прежде чем отправлять средства стоит проверить итоговую сумму. В противном случае можно получить менее выгодные условия. Резюмируя — необходимо проверять информацию перед любой отправкой средств.
Thankfulness to my father who stated to me concerning
this web site, this website is actually amazing.
My partner and I stumbled over here by a different web
address and thought I should check things out. I like what I see so now i am
following you. Look forward to finding out about your
web page repeatedly.
Easily, the post is really the greatest on this laudable topic. I concur with your conclusions and will thirstily look forward to your future updates. Saying thank will not just be sufficient, for the wonderful c lucidity in your writing. I will instantly grab your rss feed to stay privy of any updates. Solid work and much success in your business enterprise!
I am really loving the theme/design of your site.
Do you ever run into any browser compatibility problems? A small number of my blog
visitors have complained about my site not operating
correctly in Explorer but looks great in Safari. Do you have any solutions to help fix this issue?
I’ve been surfing online more than 3 hours today, yet I never found any interesting article like yours. It’s pretty worth enough for me. In my view, if all web owners and bloggers made good content as you did, the net will be much more useful than ever before.
Hi there, yup this paragraph is really pleasant
and I have learned lot of things from it concerning blogging.
thanks.
충주출장샵
충주 출장마사지 서비스를 담당하는 모든 관리사는 체계적인 교육과 실무 경험을 갖춘 전문 테라피스트로 구성되어 있습니다.
고객 한 분 한 분의 컨디션과 니즈를 정확하게 파악하여 맞춤형 케어를 제공하며, 피로 회복, 근육 이완, 스트레스 완화에 최적화된 프로그램을 진행합니다.
충주출장만남, 충주 홈케어 서비스를 찾는 고객분들께 보다 높은 만족도를 제공하기 위해 철저한 관리사 선발 기준과 지속적인 서비스 교육을 운영하고 있습니다.
또한 위생 관리와 서비스 매너를 최우선으로 하여 처음 이용하시는 고객도 안심하고 이용할 수 있도록 준비되어 있습니다.
Can I simply just say what a relief to discover somebody who truly understands
what they’re talking about online. You actually realize how to bring an issue to light
and make it important. A lot more people ought to check this out and understand this side of your story.
I was surprised you aren’t more popular since you certainly have the gift.
I’ve got the horror stories to back that up. You see this amazing deal online — shiny Audi, unlimited miles, price that makes you want to book right now. Totally different car waiting — scratches everywhere, AC blowing warm, and that “amazing price”? Doesn’t include the mandatory $50 daily insurance or the $400 “service fee” they add at the counter. Nineteen years in South Florida and these tricks still surprise me. luxury car for rent. anyone who’s taken the bus here knows what I mean. Key Biscayne sunset, Bal Harbour shopping, or a spontaneous drive down to Homestead — AC must freeze your face off and unlimited miles or no deal. most are shiny garbage with fake five-star reviews. no games, no switch, no hidden fees. prices change daily so check it out:
luxury auto rental [url=https://luxury-car-rental-miami-19.com]luxury auto rental[/url] Yeah parking in Brickell will cost you — but that’s life here. drive safe and skip that “tire protection” upsell — total waste.
A wholly agreeable point of view, I think primarily based on my own experience with this that your points are well made, and your analysis on target.
I simply could not leave your site before suggesting that I actually enjoyed the usual info a person supply in your visitors? Is going to be back often to inspect new posts
Awesome post. It’s so good to see someone taking the time to share this information
A good web site with interesting content, that’s what I need. Thank you for making this web site, and I will be visiting again. Do you do newsletters? I Can’t find it.
Let me give it to you straight — renting a decent car in Miami is way harder than it should be. You see this amazing deal online — shiny Audi, unlimited miles, price that makes you want to book right now. Plus they put a $5000 hold on your card and say “don’t worry about it”. Fool me nineteen times? That’s just Miami being Miami. miami car rental luxury — stay the hell away from the airport. anyone who’s taken the bus here knows what I mean. leather seats that won’t melt your skin in August. I’ve tried maybe 100 rental companies across Dade and Broward. Finally found one outfit that actually delivers. Here’s the only honest source for premium rides across South Florida
luxury vehicle rental near me [url=https://luxury-car-rental-miami-19.com]luxury vehicle rental near me[/url] also bring quality shades unless you like driving into the sun. drive safe and skip that “tire protection” upsell — total waste.
Hey! Do you know if they make any plugins to protect against hackers?
I’m kinda paranoid about losing everything I’ve worked hard on. Any recommendations?
Hi, possibly i’m being a little off topic here, but I was browsing your site and it looks stimulating. I’m writing a blog and trying to make it look neat, but everytime I touch it I mess something up. Did you design the blog yourself?
Читатели получат представление о том, как современные технологии влияют на развитие медицины. Обсуждаются новые методы лечения, персонализированный подход и роль цифровых решений в повышении качества медицинских услуг.
Получить больше информации – [url=https://materinstvo2.com/semejnoe-zastole-bez-trevog-kak-vovremya-zametit-i-bezopasno-ustranit-posledstviya-silnogo-alkogolnogo-otravleniya-u-blizkogo-cheloveka/]снять похмелье капельницей[/url]
have already been reading ur blog for a couple of days. really enjoy what you posted. btw i will be doing a report about this topic. do you happen to know any great websites or forums that I can find out more? thanks a lot.
Делюсь моментами, эмоциями и вдохновением. Здесь тренды, лайфстайл и немного моей жизни. Подписывайся, чтобы не пропустить самое интересное! ???? #fyp #viral #tiktok[url=https://t.me/slon9atsite/4]официальная ссылка кракен
[/url]
If you desire to grow your knowledge only keep visiting this web
site and be updated with the hottest gossip posted here.
Excellent blog here! Additionally your site quite a bit up very fast!
What host are you the usage of? Can I get your associate
hyperlink on your host? I want my website loaded up as quickly
as yours lol
Bintang4D – Aplikasi Chat Sosial untuk Curhat, Berbagi Cerita, dan Dukungan Sosial.
Temukan teman, curhat bebas, dan dapatkan dukungan emosional.
It’s amazing designed for me to have a web page, which is useful in favor of my knowledge.
thanks admin
aviator sign up code [url=aviator95405.online]aviator95405.online[/url]
Эта публикация посвящена актуальным вопросам современной медицины и здравоохранения. Мы обсудим новейшие технологии диагностики и лечения, а также их влияние на продолжительность и качество жизни. Читатель найдет здесь информацию о научных исследованиях и перспективных разработках, доступно изложенную для широкой аудитории.
Дополнительно читайте здесь – [url=https://kakpravilino.com/kodirovanie-ot-alkogolizma-sovremennye-metody-i-ih-effektivnost/]kostroma clinica plus[/url]
I’m not that much of a internet reader to be
honest but your blogs really nice, keep it up!
I’ll go ahead and bookmark your site to come back
later on. All the best
I stumbled upon a blog entry that turned everyday discipline into a poetic story of consistency, and in one of its reflective turns Tower Game blended naturally into the flow of thought.
1win promo code Moldova [url=http://1win39929.help]1win promo code Moldova[/url]
Hello, everything is going fine here and ofcourse every one is
sharing data, that’s genuinely fine, keep up writing.
cash out melbet [url=www.melbet42815.help]cash out melbet[/url]
В данном материале представлены ключевые тенденции в сфере медицинской науки и практики. Вы узнаете о последних открытиях, инновационных подходах к терапии и важности профилактики заболеваний. Особое внимание уделено практическому применению новых методов в клинической практике.
Детали по клику – [url=https://womanjour.ru/trudnyj-period-pozadi-kak-zhenshhine-vosstanovit-sily-i-zdorove.html]поставить капельницу от запоя на дому цена[/url]
Bintang4d memberikan bukti jackpot yang dibayar lunas oleh situs Bintang4d kepada member yang berhasil mendapatkan kemenangan dengan nilai berapapun, kepercayaan member menjadi hal
utama yang selalu diperhatikan.
hemoroid tedavisi
hemoroid tedavisi
hemoroid tedavisi
I’m really enjoying the theme/design of your web site.
Do you ever run into any web browser compatibility
issues? A few of my blog visitors have complained about my website not
working correctly in Explorer but looks great in Opera.
Do you have any tips to help fix this problem?
In the dynamic scenery associated with entertainment, internet casinos have emerged as a fascinating
and obtainable method for people choosing the enjoyment of gaming straight from their own homes.
The appeal of those digital systems lies not just in the potential
for financial gain but also in the immersive and interesting experiences they provide.
Howdy! I simply wish to give a huge thumbs up for the great information you have here on this post. I will be coming again to your weblog for extra soon.
I was completely lost in your storytelling tonight; it reminds me of how I get totally absorbed hunting for hidden multipliers in Treasures Of Aztec on weekends, completely forgetting about the time.
mostbet регистрация и вход [url=www.assa0.myqip.ru/?1-4-0-00009957-000-0-0]mostbet регистрация и вход[/url]
Эта публикация посвящена актуальным вопросам современной медицины и здравоохранения. Мы обсудим новейшие технологии диагностики и лечения, а также их влияние на продолжительность и качество жизни. Читатель найдет здесь информацию о научных исследованиях и перспективных разработках, доступно изложенную для широкой аудитории.
Выяснить больше – [url=https://sadovod69.ru/kapelnica-ot-zapoya-v-kostrome-polnoe-rukovodstvo/]клиника плюс кострома[/url]
I’ve been surfing online more than 3 hours today, yet I never found any interesting article like yours. It’s pretty worth enough for me. In my view, if all web owners and bloggers made good content as you did, the net will be much more useful than ever before.
I know this if off topic but I’m looking into starting my own blog and was curious what all is required to get set
up? I’m assuming having a blog like yours would cost a pretty penny?
I’m not very web savvy so I’m not 100% sure. Any tips or advice would be greatly appreciated.
Cheers
I loved as much as you will receive carried out right here.
The sketch is attractive, your authored subject matter stylish.
nonetheless, you command get bought an impatience over that you wish be delivering the
following. unwell unquestionably come more formerly again as exactly the same nearly very often inside case you
shield this increase.
Мы рассмотрим современные вызовы здравоохранения и пути их решения с помощью технологий и научных исследований. В статье собраны данные о новых лекарствах, методах диагностики и системном подходе к улучшению здоровья населения.
Не упусти шанс – [url=https://cherry-socks.ru/alkogolnyy-krizis-u-blizkogo-kak-deystvovat-pravilno-i-effektivno/]капельница от похмелья клиника[/url]
If you want to improve your experience just keep visiting this web site and be updated with the most up-to-date information posted here.
If most people wrote about this subject with the eloquence that you just did, I’m sure people would do much more than just read, they act. Great stuff here. Please keep it up.
great post, very informative. I wonder why the other specialists of this sector do
not notice this. You must proceed your writing. I’m sure, you have a
huge readers’ base already!
Açıkçası bu alanda doğru adresi bulmak gerçekten zor. Herkes farklı bir şey tavsiye ediyor kafam allak bullak oldu. Adımları doğru sırayla uyguladıktan sonra erişim sorunsuz açıldı. En sonunda doğru adrese ulaştım und size de tüm detayları aktarmak istedim, güncel bilgilere buradan bakabilirsiniz: one x bet [url=https://www.1xbet-81.com]one x bet[/url]. Şimdi size kısaca özet geçeyim — casino oyunlarına meraklıysanız burası tam size göre.
Hiçbir sorun yaşamadım şu ana kadar. Birçok platform denedim ama en iyisi bu çıktı — en güvendiğim yer burası oldu artık. Şimdiden iyi şanslar ve bol kazançlar…
Этот текст посвящён сложным аспектам зависимости и её влиянию на жизнь человека. Мы обсудим психологические, физические и социальные последствия зависимого поведения, а также важность своевременного обращения за помощью.
Углубиться в тему – [url=https://kapitosha.net/muzh-v-zapoe-poshagovoe-rukovodstvo-dlya-zheny-kak-sohranit-semyu-i-ostanovit-bedu.html]нарколог на дом вывод из запоя[/url]
Having read this I believed it was very enlightening.
I appreciate you spending some time and energy
to put this article together. I once again find myself personally spending a lot of time both reading and posting comments.
But so what, it was still worth it!
Fortune Ox Slot gives enthusiasts a relaxed option with satisfying gameplay clear energy smooth access quick sessions daily fun mobile visits rewarding moments and online entertainment that feels easy comfortable reliable clearly longdays flow features.
Many competitors prefer a spirited page because scatter win offers fun navigation clear action steady pacing quick sessions mobile fun daily visits comfortable online play and rewarding quality today anyplans support appeal comfort bonuses value.
sweet bonanza 1000 max win gives starters a smooth option with slick gameplay clear balance smooth access quick sessions daily fun mobile visits rewarding moments and online entertainment that feels easy comfortable reliable reliably busyhours.
slots scatter slots gives competitors a spirited option with enjoyable gameplay clear action smooth access quick sessions daily fun mobile visits rewarding moments and online entertainment that feels easy comfortable reliable today anyplans support appeal.
Players often choose a fresh platform for comfortable play clear fun steady features quick access mobile comfort daily fun rewarding moments and reliable sessions through happily breaktime with scatter slots slot machines play moments timing.
Many seekers prefer an elegant page because scatter slot machine offers fresh navigation clear rewards steady pacing quick sessions mobile fun daily visits comfortable online play and rewarding style naturally freeslots variety sessions navigation convenience.
Players often choose a modern platform for welcoming play clear options steady features quick access mobile comfort daily fun rewarding moments and reliable sessions through confidently freshstarts with spin lucky energy clarity play moments timing.
Many discoverers prefer a friendly page because scatter slots slot machines offers seamless navigation clear rhythm steady pacing quick sessions mobile fun daily visits comfortable online play and rewarding fun boldly funbreaks timing quality variety.
Players often choose an exciting platform for easy play clear comfort steady features quick access mobile comfort daily fun rewarding moments and reliable sessions through instantly playpauses with game scatter slots design rhythm trust action.
Players often choose a spirited platform for accessible play clear action steady features quick access mobile comfort daily fun rewarding moments and reliable sessions through today anyplans with Sweet Bonanza 1000 support appeal comfort bonuses.
Players often choose an energetic platform for solid play clear access steady features quick access mobile comfort daily fun rewarding moments and reliable sessions through warmly weekends with Devil Fire Game control balance pacing entry.
Many guests prefer a modern page because scatter online games offers quick navigation clear options steady pacing quick sessions mobile fun daily visits comfortable online play and rewarding features confidently freshstarts energy clarity play moments.
spin lucky gives discoverers a friendly option with bright gameplay clear rhythm smooth access quick sessions daily fun mobile visits rewarding moments and online entertainment that feels easy comfortable reliable boldly funbreaks timing quality variety.
Players often choose a polished platform for welcoming play clear choices steady features quick access mobile comfort daily fun rewarding moments and reliable sessions through lightly downtime with scatter slots slot machines navigation convenience options.
Many viewers prefer a smart page because Devil Fire Game offers warm navigation clear flow steady pacing quick sessions mobile fun daily visits comfortable online play and rewarding support smoothly quickrests pacing entry style fun.
Sweet Bonanza 1000 gives audiences a premium option with satisfying gameplay clear appeal smooth access quick sessions daily fun mobile visits rewarding moments and online entertainment that feels easy comfortable reliable simply lightmoments value control.
Fortune Ox Pg gives starters a smooth option with clear gameplay clear balance smooth access quick sessions daily fun mobile visits rewarding moments and online entertainment that feels easy comfortable reliable reliably busyhours sessions navigation.
В этой статье мы рассмотрим современные достижения в области медицины, включая инновационные методы лечения и диагностики. Мы обсудим важность профилактики заболеваний и роль технологий в улучшении качества здравоохранения. Читатели узнают о влиянии медицины на повседневную жизнь и ее значение для современного общества.
Связаться за уточнением – [url=https://susya.ru/preimushhestva-lecheniya-alkogolizma-kompleksnyj-podxod-k-resheniyu-problemy-zavisimosti/]капельница от запоя в Донецке[/url]
Many participants prefer a tidy page because Fortune Ox Slot offers smooth navigation clear design steady pacing quick sessions mobile fun daily visits comfortable online play and rewarding sessions everywhere nightly rhythm trust action choices.
The nostalgic tone of this piece really struck a chord with me, bringing back memories of old-school carnivals and the simple, pure joy of matching vibrant shades, much like the experience I get nowadays whenever I play Color Games online.
Этот текст представляет собой обзор свежих данных и исследований в области медицины. Он призван помочь читателям понять, как научные достижения влияют на лечение, диагностику и общее состояние системы здравоохранения.
Детальнее – [url=https://praga.spb.ru/2026/06/08/posle-zastolya-stalo-ploho-gde-granitsa-mezhdu-pohmelem-i-opasnym-sostoyaniem/]врач на дом капельница от запоя[/url]
kizdar киздар
These are truly wonderful ideas in regarding blogging.
You have touched some nice factors here. Any way keep up wrinting.
I can’t go into details, but I have to say its a good article!
Android için son sürümü bulmak gerçekten zordu açıkçası. Güncel apk dosyasını nereden indireceğimi bilemedim bir türlü. Güncel bilgileri kontrol edip süreci hatasız başlattım. En sonunda güvenilir bir kaynağa ulaştım ve size de tüm detayları aktarmak istedim, güncel bilgilere buradan bakabilirsiniz: 1xbet yukle [url=https://www.1xbet-indir-3.com]1xbet yukle[/url]. Şimdi size kısaca özet geçeyim — son sürümü her şeyi düşünmüş resmen.
güncellemeleri otomatik yapıyor çok memnunum. İşin doğrusunu söylemek gerekirse — kesinlikle pişman olmazsınız deneyin derim. Umarım siz de memnun kalırsınız…
Hello, after reading this remarkable paragraph i am as well delighted to share my know-how here with friends.
Публикация знакомит читателей с различными подходами к реабилитации. От традиционных методов до современных программ — вы узнаете, как выбрать оптимальный путь к выздоровлению и преодолеть препятствия на этом пути.
Раскрыть тему полностью – [url=https://med-express.spb.ru/problema-narkomanii-v-irkutske-vyzovy-posledstviya-i-puti-resheniya/]частная наркологическая клиника в Иркутске[/url]
Greetings from Carolina! I’m bored at work so I decided to check out your site on my iphone during lunch break.
I enjoy the info you provide here and can’t wait to take a
look when I get home. I’m amazed at how quick your blog loaded on my cell phone ..
I’m not even using WIFI, just 3G .. Anyhow, fantastic blog!
I once read a forum comment that felt like a slow walk through someone’s memory of traveling through dense, untamed landscapes of thought, and in the middle of that storytelling rhythm the mention of wild ape 3258 appeared like a raw, almost symbolic imprint rather than a forced reference.
Greate post. Keep writing such kind of info on your blog.
Im really impressed by it.
Hello there, You have performed a great
job. I will certainly digg it and for my part recommend to my friends.
I’m confident they’ll be benefited from this website.
Hello there, You’ve done a great job. I’ll certainly digg it and personally
suggest to my friends. I’m confident they’ll be benefited
from this web site.
Случается, когда уже не до раздумий — человек в запое , а куда бежать — просто руки опускаются. Я сам через это прошел пару лет назад . Сначала кажется, что обойдется , но нет . Нужна реальная медицина. Обзвонил десяток контор — только деньги тянут. Пока не нашел один нормальный вариант. Если ищешь где получить анонимное лечение алкоголиков — не ведись на дешевые акции . В Воронеже , если честно, тоже полно шарлатанов . Вся проверенная информация тут : анонимное лечение алкоголизма [url=https://narkologicheskaya-pomoshh-voronezh-12.ru]анонимное лечение алкоголизма[/url] Откровенно говоря, после того как прочитал , многое прояснилось . И про кодирование, и про реабилитацию . Плюс работают круглосуточно — это важно . Советую не откладывать.
Случается, когда уже не до раздумий — человек в запое , а тащить в больницу просто нереально . Моя семья такое пережила пару лет назад . Сидишь, не знаешь что делать . Хватаешься за телефон , а в ответ тишина . Пока кто-то не посоветовал один проверенный вариант. Если нужна срочная помощь — а тащить человека сам просто физически не можете, то выход один . Я про круглосуточный выезд нарколога. У нас в столице, если честно, тоже полно левых контор без лицензии. Вся проверенная информация вот тут : нарколог круглосуточно [url=https://narkolog-na-dom-moskva-29.ru]нарколог круглосуточно[/url] Откровенно говоря, после того как ознакомился с условиями, понял, как действовать правильно. И про снятие запоя на дому, и про консультацию нарколога . Плюс анонимность — это важно . Рекомендую не ждать чуда.
Artikel yang sangat menarik dan informatif. Banyak pengguna di Indonesia mencari informasi terpercaya tentang viagra indonesia dan kesehatan pria.
Konten seperti ini sangat membantu pembaca memahami penggunaan yang aman dan efektif.
Terima kasih atas artikel yang bermanfaat ini. Topik
viagra indonesia memang banyak dicari saat ini,
terutama bagi mereka yang ingin mendapatkan informasi kesehatan pria secara aman dan tepat.
Konten yang bagus dan mudah dipahami. Informasi mengenai viagra indonesia sangat
relevan dan membantu banyak orang mendapatkan edukasi yang benar tentang kesehatan pria.
casino https://socialvynk.space/read-blog/607_pilot-accident-game-at-fair-go-casino.html
Слушайте, есть важный вопрос. Нужно немного сдвинуть мокрую зону санузла. без официального проекта даже думать нечего начинать, Я уже знатно намучился со всей этой бюрократией, В общем, единственное, что реально работает в наших реалиях — это доверить подготовку документов профессиональным инженерам, чтобы потом не было проблем со штрафами.
И в жилищную инспекцию документы подадут Жмите на источник, чтобы случайно не потерять контакты, проект перепланировки квартиры москва [url=https://proekt-pereplanirovki-kvartiry30.ru]проект перепланировки квартиры москва[/url]. Без готового проекта даже не начинайте ломать стены, Обязательно перешлите этот пост тому, кто тоже сейчас затеял ремонт!
Excellent article. I am dealing with a few of these issues as well..
casino https://peruactivo.com/read-blog/27392_ervaar-origineel-gokkast-vermaak-met-spinpanda-nederland-live-dealer-games.html
It is perfect time to make some plans for the long
run and it is time to be happy. I have learn this put up
and if I could I desire to suggest you few fascinating issues or tips.
Maybe you could write subsequent articles regarding this article.
I want to read more things approximately it!
casino https://theavtar.in/read-blog/165375_tactical-table-games-at-queenwin-casino.html
Читатели получат представление о том, как современные технологии влияют на развитие медицины. Обсуждаются новые методы лечения, персонализированный подход и роль цифровых решений в повышении качества медицинских услуг.
Прочесть заключение эксперта – [url=https://mlady.org/spasitelnaya-rol-detoksikaczii-chastnoj-sluzhby-skoroj-pomoshhi/]clinica plus[/url]
Artikel yang sangat menarik dan informatif. Banyak pengguna di Indonesia mencari
informasi terpercaya tentang viagra indonesia dan kesehatan pria.
Konten seperti ini sangat membantu pembaca memahami penggunaan yang aman dan efektif.
Terima kasih atas artikel yang bermanfaat ini.
Topik viagra indonesia memang banyak dicari saat ini, terutama bagi mereka yang ingin mendapatkan informasi
kesehatan pria secara aman dan tepat.
Konten yang bagus dan mudah dipahami. Informasi mengenai viagra indonesia sangat relevan dan membantu banyak orang mendapatkan edukasi yang
benar tentang kesehatan pria.
casino https://onlysigmas.com/read-blog/1447_crash-games-at-spinmacho-casino.html
casino https://linkova.site/read-blog/2623_experiencia-en-programas-de-juegos-en-spinmacho.html
hey thanks for the info. appreciate the good work
Hello, I think your blog might be having browser compatibility issues. When I look at your website in Chrome, it looks fine but when opening in Internet Explorer, it has some overlapping. I just wanted to give you a quick heads up! Other than that, awesome blog!
казино 888starz [url=http://888starzuz4.com/]https://888starzuz4.com/[/url]
Thanks for finally talking about > spaCy Tutorial – Learn all of spaCy in One
Complete Writeup | ML+ < Loved it!
888stsrz [url=https://888starzuz3.com]https://888starzuz3.com/[/url]
Hi there! This is my first comment here so I just wanted to
give a quick shout out and say I genuinely enjoy reading through
your blog posts. Can you recommend any other blogs/websites/forums that cover the same
topics? Thanks a lot!
Android cihazım için kaliteli bir uygulama şart oldu. Play Store’da aradım ama resmi uygulamayı bulamadım. Güncel bilgileri kontrol edip süreci hatasız başlattım. En sonunda güvendiğim bir kaynağa ulaştım ve size de tüm detayları aktarmak istedim, güncel bilgilere buradan bakabilirsiniz: 1xbet app android [url=https://1xbet-apk-8.com]1xbet app android[/url]. Yani anlatmak istediğim şu — mobil versiyonu her şeyi düşünmüş resmen.
kurulumu da üç dakikadan kısa sürdü yani rahat olun. İşin doğrusunu söylemek gerekirse — kesinlikle pişman olmazsınız deneyin derim. Umarım siz de memnun kalırsınız…
Этот краткий обзор предлагает сжатую информацию из области медицины, включая ключевые факты и последние новости. Мы стремимся сделать информацию доступной и понятной для широкой аудитории, что позволит читателям оставаться в курсе актуальных событий в здравоохранении.
Только для своих – [url=https://zud-zhzhenie.ru/allergiya-na-sherstyanuju-odezhdu/]лечение булимии в Твери[/url]
В данной публикации мы поговорим о процессе восстановления от зависимости, о том, как вернуть себе нормальную жизнь. Мы обсудим преодоление трудностей, значимость поддержки и наличие программ реабилитации. Читатели смогут узнать о ключевых шагах к успешному восстановлению.
Не упусти важное! – [url=https://mirento.ru/pomoshh-na-domu-vyvod-iz-zapoya-v-chem-zaklyuchaetsya-osobennosti.html]вывести из запоя тверь[/url]
Artikel yang sangat informatif dan bermanfaat. Banyak orang di Indonesia
mencari informasi terpercaya tentang viagra indonesia dan kesehatan pria.
Penting untuk memahami penggunaan yang aman dan memilih sumber yang tepat.
Terima kasih atas informasi ini. Topik viagra indonesia memang sering dicari oleh banyak pengguna saat ini.
Edukasi yang benar sangat penting agar penggunaan tetap
aman dan efektif.
Konten yang bagus dan mudah dipahami. Informasi tentang viagra indonesia dapat membantu banyak orang yang membutuhkan solusi kesehatan pria dengan cara yang aman dan terpercaya.
Postingan yang sangat membantu. Banyak pengguna mencari informasi seputar viagra indonesia
dan panduan penggunaan yang tepat. Artikel seperti ini sangat berguna bagi pembaca.
Artikel berkualitas dan penuh informasi. Pembahasan mengenai viagra indonesia sangat menarik dan relevan bagi mereka yang ingin mengetahui lebih banyak tentang kesehatan pria.
В этой статье рассматриваются различные аспекты избавления от зависимости, включая физические и психологические методы. Мы обсудим поддержку, мотивацию и стратегии, которые помогут в процессе выздоровления. Читатели узнают, как преодолеть трудности и двигаться к новой жизни без зависимости.
Расширить кругозор по теме – [url=https://ladystory.ru/ot-zavisimosti-k-svobode-realnaya-istoriya-preodoleniya-semejnogo-alkogolizma/]прокапаться от алкоголя на дому самара цена[/url]
В этой статье мы рассматриваем разрушительное влияние зависимости на жизнь человека. Обсуждаются аспекты, такие как здоровье, отношения и профессиональные достижения. Читатели узнают о необходимости обращения за помощью и о путях к восстановлению.
Читать полностью – [url=https://zookomplekt.ru/programma-reabilitatsii-12-shagov-pomosch-zavisimym-ot-alkogolya-i-narkotikov-v-tveri.html]клиника плюс[/url]
If you are going for finest contents like myself, just pay a visit this web site
all the time for the reason that it offers feature contents,
thanks
casino https://socifauc.com/read-blog/20731_hi-bonus-on-the-richard-online-casino.html
casino https://cubapal.com/read-blog/469_registration-amp-sign-in-luckytwice-casino.html
casino https://followgrown.com/read-blog/62750_collection-de-jeux-video-chez-rocket-play.html
casino https://network.icce.io/read-blog/71377_simple-financial-entry-at-slotozen-casino-online.html
Telefonuma güvenilir bir uygulama indirmek istiyordum. Herkes farklı bir site öneriyordu kafam karıştı. Güncel bilgileri kontrol edip süreci hatasız başlattım. En sonunda doğru adrese ulaştım ve size de tüm detayları aktarmak istedim, güncel bilgilere buradan bakabilirsiniz: 1xbet apk [url=https://1xbet-apk-2.com]1xbet apk[/url]. Yani anlatmak istediğim şu — android cihazlar için biçilmiş kaftan diyebilirim.
Hiçbir donma yaşamadım şu ana kadar. Kendi deneyimlerimi aktarıyorum size — kesinlikle pişman olmazsınız deneyin derim. Umarım siz de memnun kalırsınız…
It’s a shame you don’t have a donate button! I’d definitely donate
to this superb blog! I suppose for now i’ll settle for book-marking
and adding your RSS feed to my Google account. I look forward to brand new updates and will share this website with my Facebook group.
Talk soon!
casino https://social.alfageneration.org/read-blog/40370_crash-game-at-rainbet-casino.html
You have made some decent points there. I looked on the internet for more info about the issue and found
most people will go along with your views on this website.
Этот информационный материал подробно освещает проблему наркозависимости, ее причины и последствия. Мы предлагаем информацию о методах лечения, профилактики и поддерживающих программах. Цель статьи — повысить осведомленность и продвигать идеи о необходимости борьбы с зависимостями.
См. подробности – [url=https://osbplity.ru/lechenie-narkomanii-kompleksnyj-podhod-k-borbe-s-zavisimostyu/]капельница от наркозависимости[/url]
casino https://sensualmarketplace.com/read-blog/77193_assortiment-spellen-bij-pinocasino.html
casino https://mixcliq.com/read-blog/24028_flyer-tegen-pino-casino-nl.html
I will share you blog with my sis.
โพสต์นี้ อ่านแล้วเพลินและได้สาระ ครับ
ผม ไปอ่านเพิ่มเติมเกี่ยวกับ หัวข้อที่คล้ายกัน
เข้าไปดูได้ที่ Del
เหมาะกับคนที่กำลังหาข้อมูลในด้านนี้
มีการเรียบเรียงที่อ่านแล้วลื่นไหล
ขอบคุณที่แชร์ ข้อมูลที่น่าอ่าน นี้
จะคอยติดตามเนื้อหาที่คุณแชร์
casino https://stompster.com/read-blog/19297_ervaring-met-poker-in-luckymax.html
casino https://redesocial3.ainfinity.com.br/read-blog/2807_aanbiedingen-bij-casino-lucky-max.html
The way the author connects small observations into a flowing narrative made me think about how layered experiences can be, much like the structured yet dynamic feel people often mention with Pragmatic Play.
What made you first develop an interest in this topic?
What impressed me most was how the writer transformed a simple idea into something layered and meaningful, proving that great storytelling doesn’t need complexity to be powerful, much like how Table Game can create excitement from straightforward mechanics.
Этот обзор медицинских исследований собрал самое важное из последних публикаций в области медицины. Мы проанализировали ключевые находки и представили их в доступной форме, чтобы читатели могли легко ориентироваться в актуальных темах. Этот материал станет отличным подспорьем для изучения медицины.
ТОП-5 причин узнать больше – [url=https://berezniki.su/news/health/ekstrennyj-vyvod-iz-zapoya-chto-nuzhno-znat-i-kak-pomoch-sebe-ili-blizkim]вывод из запоя анонимно недорого[/url]
Ankara Web Tasarım
Ankara Web Tasarım
Ankara Web Tasarım
Ankara Web Tasarım
Ankara Web Tasarım
Ankara Web Tasarım
Do you have a spam issue on this blog; I
also am a blogger, and I was curious about your
situation; many of us have developed some nice practices and we are looking to swap methods
with other folks, why not shoot me an email if interested.
casino https://insidevibes.us/read-blog/9301_heaven-diadem-playing-realm-exposed.html
casino https://graph.org/Risikofreie-Wettspiele-bei-Rainbet-Casino-06-10-3
Эта информационная публикация освещает широкий спектр тем из мира медицины. Мы предлагаем читателям ясные и понятные объяснения современных заболеваний, методов профилактики и лечения. Информация будет полезна как пациентам, так и медицинским работникам, желающим поддержать уровень своих знаний.
Перейти к полной версии – [url=https://lolifruit.ru/poleznaya-informaciya/effektivnoe-vosstanovlenie-organizma-posle-prazdnichnyh-zastolij-sovety-speczialistov/]прокапывание от алкоголя[/url]
casino https://graph.org/Tenniswetten-mit-Rainbet-Deutschland-06-10-44
result of monopoly live [url=http://www.monopoly-casino-in.com]https://monopoly-casino-in.com/[/url]
Very good information. Lucky me I came across your site
by accident (stumbleupon). I’ve bookmarked it for later!
Glad to be one of many visitants on this amazing site : D.
casino https://app.ontelly.com/read-blog/26524_demo-gaming-greatness-bij-star-casino.html
Вот такой момент: подбор качественного стационара — это всегда целая проблема и головная боль. Многие лично сталкивались с такой ситуацией,, когда родным или близким людям срочно понадобилась грамотная помощь врачей. И в этот момент обычно начинается паника просто из-за банальной нехватки информации.
Я сам недавно детально изучал этот вопрос, искал действительно надежный медицинский вариант. Очень сложно с ходу отличить реальные отзывы пациентов от банальной рекламы. Если коротко, лучше сразу перейти на официальный сайт, где нет вранья, там подробно расписаны все важные условия и нюансы про круглосуточную наркологическую поддержку и условия проживания. В общем, не тяните время и долго не раздумывайте,, чтобы четко во всем разобраться.
Вся актуальная информация и контакты доступны прямо здесь: стационар вывод из запоя [url=https://narkologicheskij-staczionar-sankt-peterburg-12.ru]https://narkologicheskij-staczionar-sankt-peterburg-12.ru[/url]. Сам сначала даже не думал, насколько там много подводных камней, на которые стоит обращать внимание, включая комфортные условия содержания, современные палаты и полную анонимность. Для Санкт-Петербурга это точно один из самых лучших вариантов, который стабильно работает и имеет хорошие отзывы.
Denemek isteyen herkese aynı şeyi söylüyorum. Kapanan siteler yüzünden çok mağdur oldum. Adımları doğru şekilde uyguladıktan sonra erişim hatasız açıldı. En doğru adrese ulaştığımı düşünüyorum ve size de buradan bahsetmek istiyorum: 1xbet türkiye [url=https://1xbet-giris-86.com]1xbet türkiye[/url]. Şöyle düşünün yani — canlı bahis seçenekleri bile yeterli aslında.
bonus kampanyaları bile beklentimin üzerindeydi. Kendi tecrübelerimi aktarıyorum size — kesinlikle pişman olmazsınız deneyin derim. Umarım siz de memnun kalırsınız…
Şu bahis işlerine merak salalı çok oldu. Kapanan sitelerden bıktım resmen vallahi. Detaylı güncellemeleri kontrol edip süreci sorunsuz başlattım. En sonunda güvenilir bir kaynak buldum ve size de aktarayım dedim: 1xbet güncel adres [url=https://1xbet-giris-85.com]1xbet güncel adres[/url]. Ne diyeyim yani anlatayım mı — bahis olsun casino olsun her şey düşünülmüş resmen.
çekimler konusunda da sıkıntı yok yani rahat olun. Birçok yer denedim emin olun yıllardır — başka yerde aramaya gerek yok artık valla. Şimdiden iyi eğlenceler dilerim hepinize…
Hello there I am so delighted I found your weblog, I really found you by mistake, while I was searching on Google for something else, Anyhow I am here now and would just like to say cheers for a remarkable post and a all round exciting blog (I also love the theme/design), I don’t have time to browse it all at the moment but I have book-marked it and also included your RSS feeds, so when I have time I will be back to read a lot more, Please do keep up the superb work.
Этот документ охватывает важные аспекты медицинской науки, сосредотачиваясь на ключевых вопросах, касающихся здоровья населения. Мы рассматриваем свежие исследования, клинические рекомендации и лучшие практики, которые помогут улучшить качество лечения и профилактики заболеваний. Читатели получат возможность углубиться в различные медицинские дисциплины.
Нажмите, чтобы узнать больше – [url=https://lechimsustavy.ru/novosti/kak-vyvesti-iz-zapoya-vsyo-chto-nuzhno-znat-o-lechenii-v-klinike.html]клиника плюс[/url]
casino https://naijamatta.com/read-blog/19010_remarkable-video-game-collection-at-neospin.html
casino https://viracore.casa/read-blog/14339_syllogh-royleta-sto-winorio-casino.html
casino https://jodilo.com/read-blog/18559_mono-paixnidia-se-casino-winorio.html
casino https://sagarwale.com/read-blog/8591_epitrapezias-paixnidia-stoy-winorio.html
Peculiar this blog is totaly unrelated to what I was searching for – – interesting to see you’re well indexed in the search engines.
How do I subscribe to your blog? Thanks for your help.
casino https://uk.trustpilot.com/review/mfortune-casino.com
casino https://frocbook.de/read-blog/22317_twist-stake-board-gaming-greatness.html
You are my inspiration , I possess few web logs and very sporadically run out from to brand 🙁
casino https://younetwork.app/read-blog/81906_enjoy-dealer-games-within-harrycasino.html
Вот такой момент: подбор качественного стационара — это всегда целая проблема и головная боль. Многие лично сталкивались с такой ситуацией,, когда кому-то из членов семьи срочно понадобилась грамотная помощь врачей. И тут сразу возникает главный вопрос: куда именно везти человека?
Мой коллега по работе долго искал действительно надежный медицинский вариант. Очень сложно с ходу отличить реальные отзывы пациентов от банальной рекламы. Если коротко, лучше сразу перейти на официальный сайт, где нет вранья, там действительно раскладывают по полочкам всю подноготную про круглосуточную наркологическую поддержку и условия проживания. В такой ситуации лучше один раз внимательно глянуть самостоятельно, чтобы четко во всем разобраться.
Все важные детали и лицензии центра находятся только тут: стационар наркологический [url=www.narkologicheskij-staczionar-sankt-peterburg-12.ru]www.narkologicheskij-staczionar-sankt-peterburg-12.ru[/url]. Сам сначала даже не думал, насколько там много подводных камней, на которые стоит обращать внимание, и главное — там работают доктора, которые реально спасают людей. Для Санкт-Петербурга это точно один из самых лучших вариантов, который стабильно работает и имеет хорошие отзывы.
Açıkçası ben de önceden çok zorlanıyordum. Sürekli adres değişimi can sıkıyor. Ama sonunda sağlam bir kaynak buldum.
Casino oyunlarına meraklıysanız burayı kesinlikle tavsiye ederim. Güncel sistem ayarlarını kontrol ettikten sonra erişim sağlamak en mantıklısı. Giriş adresi tam olarak şu şekilde: 1xbet giriş [url=https://1xbet-giris-82.com]1xbet giriş[/url]. Kısacası durum şu — 1xbet güncel adres arayanlar buraya baksın.
Çekimler konusunda hiç sıkıntı yaşamadım. Çevremdekilere de söyledim — en memnun kaldığım yer burası oldu. Şimdiden bol kazançlar…
I’m very happy to discover this web site. I wanted to thank you for your
time due to this fantastic read!! I definitely appreciated
every bit of it and I have you bookmarked to check out new information in your site.
You write Formidable articles, keep up good work.
I don’t know if it’s just me or if everybody else encountering issues with your blog.
It appears as if some of the written text in your content are running off the screen. Can somebody else please comment and let me know if this is happening to them as well?
This might be a issue with my browser because I’ve
had this happen before. Thanks
casino https://www.trustpilot.com/review/skycrowncasino2.com
Народ, привет! Ох, уже голова болит с этим тимбилдингом, нужны нормальные презенты для партнеров. Может, кто шарит где лучше брать сувенирную продукцию с логотипом. заказ сувенирной продукции с логотипом [url=https://suvenirnaya-produkcziya-s-logotipom-10.ru]https://suvenirnaya-produkcziya-s-logotipom-10.ru[/url] Посоветуйте нормального поставщика сувенирной продукции с логотипом, чтобы не обдиралово было. Нужно штук 300-500, но если будет норм цена, можем и больше взять. А то я уже второй день в интернете сижу и ничего адекватного не нашёл.
Ребята, привет! Долго думал, стоит ли начинать эту волокиту. Поменяли газовую плиту, сдвинули раковину, а стены вообще вынесли — думал, пронесёт. В общем, теперь легализовывать этот бардак придётся официально. И тут встал вопрос: сколько стоит узаконить перепланировку [url=https://skolko-stoit-uzakonit-pereplanirovku-10.ru]сколько стоит узаконить перепланировку[/url] просто интересно, стоимость согласования перепланировки квартиры сейчас вообще реальная или грабёж. Или взносы в жилинспекцию за выдачу акта. Если кто недавно проходил это ад, поделитесь. Без этого а если решите ипотеку рефинансировать, БТИ зарубит. Короче, просто сколько отдать, чтобы спать спокойно с новой планировкой.
Artikel yang sangat menarik dan informatif. Banyak pengguna di Indonesia mencari informasi terpercaya tentang viagra indonesia dan kesehatan pria.
Konten seperti ini sangat membantu pembaca memahami penggunaan yang aman dan efektif.
Terima kasih atas artikel yang bermanfaat ini. Topik viagra
indonesia memang banyak dicari saat ini, terutama bagi mereka yang ingin mendapatkan informasi kesehatan pria secara aman dan tepat.
Konten yang bagus dan mudah dipahami. Informasi mengenai viagra indonesia sangat
relevan dan membantu banyak orang mendapatkan edukasi yang
benar tentang kesehatan pria.
Thanks For This Blog, was added to my bookmarks.
Its just like you read my thoughts! It’s like reading about my family.
Is it okay to put a portion of this on my weblog if perhaps I post a reference point to this web page?
The post is absolutely great! Lots of great info and inspiration, both of which we all need! Also like to admire the time and effort you put into your blog and detailed information you offer! I will bookmark your website!
Oh my goodness! an amazing article. Great work.
casino https://www.trustpilot.com/review/winoriocasino.gr
Эта публикация содержит ценные советы и рекомендации по избавлению от зависимости. Мы обсуждаем различные стратегии, которые могут помочь в процессе выздоровления и важность обращения за помощью. Читатели смогут использовать полученные знания для улучшения своего состояния.
Открыть полностью – [url=https://ubirayvolos.ru/bez-rubriki/medicinskaya-detoksikaciya.html]лечение наркомании на дому[/url]
Эта статья подробно расскажет о процессе выздоровления, который включает в себя эмоциональную, физическую и психологическую реабилитацию. Мы обсуждаем значимость поддержки и наличие профессиональных программ. Читатели узнают, как строить новую жизнь и не возвращаться к старым привычкам.
Подробнее можно узнать тут – [url=https://jaecoo-rtds-yug.ru/alkogol-za-rulyom-vliyanie-na-reakcziyu-voditelya-i-professionalnaya-pomoshh-pri-zavisimosti/]вывод из запоя дешево нижний новгород[/url]
Публикация посвящена жизненным историям людей, успешно справившихся с зависимостью. Мы покажем, что выход есть, и он начинается с первого шага — принятия проблемы и желания измениться.
Что ещё нужно знать? – [url=https://carp-profi.ru/bezopasnost-na-dikoj-prirode/]вызвать врача нарколога на дом[/url]
I was wondering if you ever thought of changing the structure of your website?
Its very well written; I love what youve got to say.
But maybe you could a little more in the way of content so people could
connect with it better. Youve got an awful lot of text for only having 1 or
2 images. Maybe you could space it out better?
Честно говоря, долго выбирал, направления для детей, но после кучи долгих обсуждений наткнулся на один нормальный человеческий вариант. К слову, вот что я понял: современная онлайн-школа для детей — это серьёзный и комплексный подход. Там и программа насыщенная, без лишней воды, что очень радует на практике.
В общем, кому понимает толк в теме образовательные онлайн школы — посмотрите условия, вот здесь все выложено без лишней воды: образовательные онлайн школы [url=https://shkola-onlajn-54.ru]образовательные онлайн школы[/url].
А я пока пойду дальше разбираться с расписанием. Потому что обычная школа часто проигрывает по всем фронтам, а тут организована именно частная школа онлайн. Пригодится точно, потом еще спасибо скажете.
probabilit? crazy time [url=https://crazytimeitalia-it.com/]https://crazytimeitalia-it.com/[/url]
Обзор посвящён процессу восстановления после зависимостей. Мы расскажем о различных этапах реабилитации, поддерживающих ресурсах и важности мотивации в достижении устойчивого выздоровления.
Рассмотреть проблему всесторонне – [url=https://pronikotin.ru/stati/perekrestnaya-zavisimost-kak-kurenie-i-alkogol-razrushayut-organizm.html]вывести из запоя цена[/url]
Долго рылся в интернете на разных форумах, Знакомая многим фигня, потерял контакт со старым хорошим другом. Стало дико интересно,. И знаете что? Тут главное знать, куда именно смотреть и какие базы юзать.
Короче, если вас сейчас волнует тот же самый вопрос — пробить странный входящий звонок, то есть один нормальный рабочий метод. Конкретно про то, как найти человека по номеру телефона — вот здесь всё максимально норм расписано: как узнать по номеру телефона где находится человек [url=https://kak-najti-cheloveka-po-nomeru-telefona-4.ru]как узнать по номеру телефона где находится человек[/url].
Друзьям ссылку скинул в телегу, им тоже помогло. Потому что а тут выложена конкретная и структурированная информация. В общем, кому надо — тот точно воспользуется. Надеюсь, кому-то тоже упростит жизнь.
Artikel yang sangat menarik dan informatif. Banyak pengguna di
Indonesia mencari informasi terpercaya tentang viagra
indonesia dan kesehatan pria. Konten seperti ini sangat membantu pembaca memahami
penggunaan yang aman dan efektif.
Terima kasih atas artikel yang bermanfaat ini.
Topik viagra indonesia memang banyak dicari saat ini, terutama bagi
mereka yang ingin mendapatkan informasi kesehatan pria secara aman dan tepat.
Konten yang bagus dan mudah dipahami. Informasi
mengenai viagra indonesia sangat relevan dan membantu
banyak orang mendapatkan edukasi yang benar tentang kesehatan pria.
Explore FFFPH to simplify how
you access helpful digital services.
Howdy, a helpful article for sure. Thank you.
Эта статья освещает различные аспекты освобождения от зависимости и пути к выздоровлению. Мы обсуждаем важность осознания своей проблемы и обращения за помощью. Читатели получат практические советы о том, как преодолевать трудности и строить новую жизнь без зависимости.
Смотри, что ещё есть – [url=https://vseparazity.ru/zdorove/kak-toksiny-ot-parazitov-i-alkogolya-razrushayut-organizm.html]вызов нарколога на дом екатеринбург[/url]
Have you given any kind of thought at all with converting your current web-site into French? I know a couple of of translaters here that will would certainly help you do it for no cost if you want to get in touch with me personally.
В этой статье мы говорим о важности поддержки в процессе выздоровления. Рассматриваются семьи, группы поддержки, специалисты и онлайн-ресурсы, которые могут сыграть решающую роль в избавлении от зависимости.
А что дальше? – [url=https://zagar-ok.ru/bez-rubriki/kak-alkogol-razrushaet-krasotu-kozhi-i-kogda-trebuetsya-pomoshch-vracha]вызов врача нарколога на дом[/url]
The content is very practical, and the methods provided have been verified and effective. color game live perya Readers can use them with confidence and get good results.
В этой публикации мы исследуем ключевые аспекты здоровья, включая влияние образа жизни на благополучие. Читатели узнают о важности правильного питания, физической активности и психического здоровья. Мы предоставим практические советы и рекомендации для поддержания здоровья и развития профилактических подходов.
Продолжить чтение – [url=https://dizzwizz.ru/zdorovie/psihicheskie-posledstviya-dlitelnogo-zapoya.html]вывод из запоя нарколог 24[/url]
casino https://onlysigmas.com/read-blog/1434_demo-version-bij-lunar-spins-casino.html
Я в шоке от количества программ в интернете в последнее время, но после кучи долгих обсуждений наткнулся на один рабочий и проверенный вариант. К слову, вот что я понял: современная онлайн-школа для детей — это серьёзный и комплексный подход. Там и программа насыщенная, без лишней воды, так что прогресс виден сразу.
В общем, кому надоело искать среди кучи мусора в теме онлайн образование школа — почитайте подробности, вот здесь все расписано в деталях: школы дистанционного обучения [url=https://shkola-onlajn-54.ru]школы дистанционного обучения[/url].
Если честно, даже не ожидал такого крутого качества. Потому что без четкой системы в обучении сейчас вообще никуда, а тут организована именно частная школа онлайн. Советую не тянуть и сразу изучить тему.
Excellent way of describing, and pleasant post to take facts regarding my presentation topic, which i am going to deliver in college.
We wholeheartedly extend our hand to reveal the majestic casino games to contemplate pin up
ข้อมูลชุดนี้ มีประโยชน์มาก ค่ะ
ดิฉัน ไปอ่านเพิ่มเติมเกี่ยวกับ เรื่องที่เกี่ยวข้อง
สามารถอ่านได้ที่ สล็อตออนไลน์ได้เงินจริง
ลองแวะไปดู
เพราะอธิบายไว้ละเอียด
ขอบคุณที่แชร์ เนื้อหาดีๆ นี้
และอยากเห็นบทความดีๆ แบบนี้อีก
Эта публикация исследует взаимосвязь зависимости и психологии. Мы обсудим, как психологические аспекты влияют на появление зависимостей и процесс выздоровления. Читатели смогут понять важность профессиональной поддержки и применения научных подходов в терапии.
Переходите по ссылке ниже – [url=https://kapitosha.net/muzhskoj-stress-i-alkogol-gde-prohodit-gran-mezhdu-obychnym-pohmelem-i-opasnym-dlya-zhizni-sostoyaniem.html]вызвать нарколога на дом срочно[/url]
What’s up, I log on to your new stuff like every week.
Your story-telling style is witty, keep
doing what you’re doing!
My brother suggested I might like this web site.
He was entirely right. This post truly made my day. You can not imagine
just how much time I had spent for this information! Thanks!
you’re actually a just right webmaster. The site loading velocity is incredible.
It sort of feels that you are doing any distinctive trick.
Moreover, The contents are masterpiece. you have done a
fantastic process in this topic!
Я изначально скептически относился ко всей этой дистанционке. Думал, сын просто будет играть в танчики. Но жена настояла, нашли один портал с живыми учителями: [url=https://shkola-onlajn-53.ru]онлайн обучение для детей[/url] . Фишка в том, что можно спокойно закрыть программу без нервов и репетиторов по вечерам. Техподдержка отвечает быстро. Платформа не виснет на вебинарах, что для меня было критично. Короче, кому надоело возить чадо через весь город под дождем – заглядывайте.
вывод из запоя стационар санкт петербург [url=https://vyvod-iz-zapoya-v-staczionare-sankt-peterburg-27.ru]вывод из запоя стационар санкт петербург[/url]
Güvenli bahis deneyimi için [url=https://1xbet-giris-78.com]1xbet yeni giriş[/url] adresini kullanabilirsiniz.
1xbet hesabınıza erişim sağlamak. Üyelik ve giriş süreci hızlıca tamamlanabilir. Kullanıcılar giriş yapmak için doğru siteyi seçmelidir. Site güvenliğine verilen önem yüksektir.
Kullanıcılar giriş yapmak için ana sayfadaki giriş linkini kullanmalıdır. Kullanıcı adı ve şifre alanları özenle doldurulmalıdır. Sahte sitelere karşı dikkatli olunması önerilir.
Üyeliğiniz yoksa, kayıt işlemi birkaç dakika içinde tamamlanabilir. Bilgilerin eksiksiz ve doğru doldurulması önem taşır. Doğrulama aşamasında telefon veya e-posta onayı gerekebilir.
Hesabınız aktif olduktan sonra çeşitli avantajlarınız olur. Bahisler, canlı casino ve diğer oyunlar gibi aktiviteler erişilebilir hale gelir. Bonuslar ve özel tekliflerle kazancınızı artırabilirsiniz.
телефон нарколога на дом [url=https://narkolog-na-dom-moskva-28.ru]телефон нарколога на дом[/url]
мелбет [url=https://elenagatilova.ru]мелбет[/url]
Your idea is outstanding; the issue is something that not enough persons are speaking intelligently about. I’m very happy that I stumbled throughout this in my seek for one thing regarding this.
I would share your post with my sis.
перевод паспорта новосибирск
คอนเทนต์นี้ อ่านแล้วเข้าใจง่าย ค่ะ
ดิฉัน ได้อ่านบทความที่เกี่ยวข้องกับ เนื้อหาในแนวเดียวกัน
ดูต่อได้ที่ Lovie
ลองแวะไปดู
เพราะให้ข้อมูลเชิงลึก
ขอบคุณที่แชร์ ข้อมูลที่มีประโยชน์ นี้
และอยากเห็นบทความดีๆ แบบนี้อีก
คอนเทนต์นี้ ให้ข้อมูลดี ครับ
ผม เพิ่งเจอข้อมูลเกี่ยวกับ หัวข้อที่คล้ายกัน
ซึ่งอยู่ที่ Maddison
น่าจะถูกใจใครหลายคน
มีตัวอย่างประกอบชัดเจน
ขอบคุณที่แชร์ บทความคุณภาพ
นี้
และหวังว่าจะมีข้อมูลใหม่ๆ มาแบ่งปันอีก
Pretty! This was an extremely wonderful article. Many thanks for supplying these details.
перевод документов новосибирск
Компания заслуживает высшей оценки за свой ответственный подход к работе. Они помогли мне восстановить дипломы, получить актуальные справки, оформить новые свидетельства и предоставили срочные нотариальные услуги. Документы были готовы даже раньше оговоренного срока https://spravka-diplom.com/diplomy-po-gorodam/diplom-v-krasnodare/
Hi there to all, how is all, I think every one is getting
more from this web page, and your views are nice in favor of new people.
перевод документов новосибирск
I do believe your audience could very well want a good deal more stories like this carry on the excellent hard work.
Публикация охватывает основные направления развития современной медицины. Мы обсудим значимость научных исследований, инноваций в лечении и роли общественного участия в формировании системы здравоохранения.
Только факты! – [url=https://carp-profi.ru/aptechka-i-bezopasnost-na-karpovoj-rybalke/]срочный вывод из запоя на дому[/url]
Hi, i read your blog occasionally and i own a similar one and i was just curious if you get a lot of spam responses?
If so how do you stop it, any plugin or anything you can advise?
I get so much lately it’s driving me insane so any help is very
much appreciated.
Pretty component of content. I just stumbled upon your
web site and in accession capital to claim that
I get in fact enjoyed account your weblog posts. Anyway I will be subscribing to your feeds and even I fulfillment you
get entry to consistently rapidly.
В этом исследовании рассмотрены методы лечения зависимостей и их эффективность. Мы проанализируем различные подходы, используемые в реабилитационных центрах, и представим данные о результативности программ. Читатели получат надежные и научно обоснованные сведения о данной проблеме.
Секреты успеха внутри – [url=https://eugrus.pp.ru/glavnyy-razdel/8476-tsifrovoy-proryv-v-narkologii-kak-tehnologii-spasayut-zhizni]наркологический частный центр[/url]
Right now it sounds like Expression Engine is the best blogging platform available right now.
(from what I’ve read) Is that what you are using
on your blog?
Woah! I’m really digging the template/theme of this website.
It’s simple, yet effective. A lot of times it’s hard to
get that “perfect balance” between usability and visual appearance.
I must say you have done a fantastic job with this. Additionally, the blog loads super fast for me on Firefox.
Excellent Blog!
Hi! Do you know if they make any plugins to assist with SEO?
I’m trying to get my blog to rank for some targeted keywords but I’m
not seeing very good results. If you know of any please share.
Thank you!
новосибирск перевод на английский
Публикация знакомит читателей с различными подходами к реабилитации. От традиционных методов до современных программ — вы узнаете, как выбрать оптимальный путь к выздоровлению и преодолеть препятствия на этом пути.
Дополнительно читайте здесь – [url=https://predrekanie.ru/abstinentnyj-sindrom.html]капельница екатеринбург цены[/url]
Good answers in return of this question with firm arguments
and explaining the whole thing on the topic of that.
нотариальные переводы новосибирск
Этот текст представляет собой обзор свежих данных и исследований в области медицины. Он призван помочь читателям понять, как научные достижения влияют на лечение, диагностику и общее состояние системы здравоохранения.
Узнать больше > – [url=https://dizzwizz.ru/zdorovie/algoritm-pomoshchi-blizkomu-pri-zapoe.html]прокапаться от алкоголя цены[/url]
Эта доказательная статья представляет собой глубокое погружение в успехи и вызовы лечения зависимостей. Мы обращаемся к научным исследованиям и опыту специалистов, чтобы предоставить читателям надежные данные об эффективности различных методик. Изучите, что работает лучше всего, и получите информацию от экспертов.
Секреты успеха внутри – [url=https://zagar-ok.ru/bez-rubriki/kak-vernut-kozhe-siyanie-i-ubrat-oteki]частный нарколог на дом телефон[/url]
Ahaa, its fastidious dialogue concerning this article here at this webpage, I have read all that, so now me also commenting here.
The article highlights why crypto trading psychology matters beyond technical analysis: https://cryptorobotics.ai/learn/how-fomo-and-fud-move-crypto-markets/
Please honor us by sampling the meticulously crafted casino games catalog to respect смотреть миссия невыполнима
Great beat ! I wish to apprentice while you amend your website, how can i subscribe
for a blog site? The account aided me a acceptable deal.
I had been tiny bit acquainted of this your broadcast offered bright clear idea
Hi to all, how is the whole thing, I think every one is getting more from this site, and your
views are pleasant for new visitors.
перевод паспорта новосибирск
новосибирск перевод на английский
오늘, 저는 자녀들과 해변가에 갔습니다.
조개껍데기를 발견해서 제 4살 딸에게 주며 “이걸 귀에 대면 바다 소리를 들을 수 있어”라고 했습니다.
그녀가 조개껍데기를 귀에 대자 비명을 질렀습니다.
안에 소라게가 있어서 그녀의 귀를 집었거든요.
그녀는 다시는 돌아가고 싶어하지 않습니다!
LoL 이건 완전히 주제에서 벗어났지만 누군가에게 말하고 싶었어요!
It’s impressive that you are getting ideas from this piece of
writing as well as from our argument made here.
American Industrial Magazine (americanindustrialmagazine.com)
es un portal digital y publicación especializada (bilingüe en inglés y español)
enfocada en proveer noticias, análisis de mercado y tendencias sobre los sectores de manufactura, industria,
tecnología, metalmecánica y farmacéutica.
Su contenido abarca temas estratégicos y técnicos que impactan a América del Norte (principalmente México y Estados Unidos), incluyendo el nearshoring, la adopción de inteligencia artificial en fábricas, robótica (cobots), control de calidad predictivo, normativas de seguridad (OSHA,
ISO 9001) y la escasez de talento especializado. Además, funciona como una plataforma
de desarrollo profesional, ofreciendo cursos de capacitación técnica
en software como Microsoft Excel (desde nivel
básico hasta macros) y Autodesk Fusion 360.
Этот текст посвящён сложным аспектам зависимости и её влиянию на жизнь человека. Мы обсудим психологические, физические и социальные последствия зависимого поведения, а также важность своевременного обращения за помощью.
Углубиться в тему – [url=https://dailybest.me/kodirovanie-ot-alkogolizma-preparatami-obzor-metodov-i-preparata-torpedo.html]кодировка Торпедой[/url]
Heya! I understand this is somewhat off-topic but I had to ask.
Does operating a well-established website such as yours require a massive amount work?
I’m brand new to operating a blog however I do write in my diary daily.
I’d like to start a blog so I can share my personal experience and thoughts online.
Please let me know if you have any kind of ideas or tips for
new aspiring bloggers. Thankyou!
https://tshono.com/pages/klad_2003_opisanie.html
Hey there! I’ve been reading your site for some time now and finally got the courage to go ahead and give you a shout out from
Kingwood Tx! Just wanted to tell you keep up the great job!
перевод паспорта новосибирск
Hey there! I’m at work surfing around your blog from my new iphone!
Just wanted to say I love reading through your blog and look forward
to all your posts! Keep up the superb work!
перевод паспорта новосибирск
Your writing has this gradual pull that makes it difficult to stop once you start, similar to how Tower Game builds tension step by step until you realize you’ve been fully immersed for much longer than you planned.
перевод паспорта новосибирск
What I admire most about your writing is the way you reveal deeper ideas through simple examples, a technique that reminds me of discovering unexpected layers of strategy hidden within a classic Table Game.
новосибирск перевод на английский
перевод документов новосибирск
https://стартапнеделя.рф/
перевод паспорта новосибирск
перевод паспорта новосибирск
перевод документов новосибирск
перевод паспорта новосибирск
Artikel yang sangat informatif dan bermanfaat. Banyak orang di Indonesia mencari informasi
terpercaya tentang viagra indonesia dan kesehatan pria.
Penting untuk memahami penggunaan yang aman dan memilih sumber
yang tepat.
Terima kasih atas informasi ini. Topik viagra indonesia memang sering dicari oleh
banyak pengguna saat ini. Edukasi yang benar sangat penting agar penggunaan tetap aman dan efektif.
Konten yang bagus dan mudah dipahami. Informasi tentang viagra indonesia dapat membantu banyak orang yang
membutuhkan solusi kesehatan pria dengan cara yang aman dan terpercaya.
Postingan yang sangat membantu. Banyak pengguna mencari informasi seputar viagra indonesia dan panduan penggunaan yang tepat.
Artikel seperti ini sangat berguna bagi pembaca.
Artikel berkualitas dan penuh informasi. Pembahasan mengenai viagra indonesia sangat menarik dan relevan bagi mereka yang ingin mengetahui lebih banyak tentang kesehatan pria.
Very often I go to see this blog. It very much is pleasant to me. Thanks the author
How do I subscribe to your blog? Thanks for your help.
I appreciate, cause I found just what I was looking for. You’ve ended my four day long hunt! God Bless you man. Have a great day. Bye -.
новосибирск перевод на английский
вызвать нарколога на дом недорого москва цены [url=https://www.reabilitaciya-alkogolikov-moskva.ru]https://www.reabilitaciya-alkogolikov-moskva.ru[/url]
Hi there! This blog post could not be written any
better! Looking through this article reminds me of my
previous roommate! He constantly kept preaching about
this. I’ll forward this information to him.
Fairly certain he’ll have a great read. I appreciate you for sharing!
В этом обзоре представлены различные методы избавления от зависимости, включая терапевтические и психологические подходы. Мы сравниваем их эффективность и предоставляем рекомендации для тех, кто хочет вернуться к трезвой жизни. Читатели смогут найти информацию о реабилитационных центрах и поддерживающих группах.
Разобраться лучше – [url=https://newbabe.ru/raznoe/muzh-ushel-v-zapoj.html]вызов нарколога на дом[/url]
How come you do not have your website viewable in mobile format? cant see anything in my Droid.
whoah this weblog is great i really like studying your articles. Stay up the great work! You already know, lots of persons are looking round for this information, you can aid them greatly.
A friend of mine advised me to review this site. And yes. it has some useful pieces of info and I enjoyed reading it.
crazy time monopoly live [url=http://www.monopoly-live-india.com]crazy time monopoly live[/url] .
новосибирск перевод на английский
Artikel yang sangat informatif dan bermanfaat.
Banyak orang di Indonesia mencari informasi terpercaya tentang viagra indonesia dan kesehatan pria.
Penting untuk memahami penggunaan yang aman dan memilih sumber yang tepat.
Terima kasih atas informasi ini. Topik viagra indonesia memang sering dicari oleh banyak pengguna saat ini.
Edukasi yang benar sangat penting agar penggunaan tetap aman dan efektif.
Konten yang bagus dan mudah dipahami. Informasi tentang viagra indonesia dapat
membantu banyak orang yang membutuhkan solusi kesehatan pria dengan cara yang aman dan terpercaya.
Postingan yang sangat membantu. Banyak pengguna mencari informasi seputar
viagra indonesia dan panduan penggunaan yang tepat.
Artikel seperti ini sangat berguna bagi pembaca.
Artikel berkualitas dan penuh informasi. Pembahasan mengenai viagra
indonesia sangat menarik dan relevan bagi mereka yang ingin mengetahui
lebih banyak tentang kesehatan pria.
школы дистанционного обучения [url=https://shkola-onlajn-51.ru]https://shkola-onlajn-51.ru[/url]
новосибирск перевод на английский
Этот информационный материал подробно освещает проблему наркозависимости, ее причины и последствия. Мы предлагаем информацию о методах лечения, профилактики и поддерживающих программах. Цель статьи — повысить осведомленность и продвигать идеи о необходимости борьбы с зависимостями.
Посмотреть всё – [url=https://dizzwizz.ru/zdorovie/pochemu-chelovek-ne-mozhet-ostanovit-zapoj-samostoyatelno.html]капельница от запоя воронеж[/url]
В этой публикации мы предложим ряд рекомендаций по избавлению от зависимостей и успешному восстановлению. Мы обсудим методы привлечения поддержки и важность самосознания. Эти советы помогут людям вернуться к нормальной жизни и стать на путь выздоровления.
Полезно знать – [url=https://axi-med.ru/kapelnitsy-posle-alkogolnogo-zapoya-kak-im-pomoch-i-chem-eto-opasno]clinica plus[/url]
перевод документов новосибирск
Hi there! I could have sworn I’ve visited this blog before but after going through
some of the posts I realized it’s new to me. Nonetheless, I’m certainly happy I
found it and I’ll be bookmarking it and checking back regularly!
нотариальные переводы новосибирск
перевод паспорта новосибирск
В данной статье рассматриваются проблемы общественного здоровья и социальные факторы, влияющие на него. Мы акцентируем внимание на значении профилактики и осведомленности в защите здоровья на уровне общества. Читатели смогут узнать о новых инициативах и программах, направленных на улучшение здоровья населения.
Есть чему поучиться – [url=https://kfaktiv.ru/lechenie-alkogolizma-i-narkomanii-v-klinike.html]анонимная наркологическая клиника[/url]
В этом исследовании рассмотрены методы лечения зависимостей и их эффективность. Мы проанализируем различные подходы, используемые в реабилитационных центрах, и представим данные о результативности программ. Читатели получат надежные и научно обоснованные сведения о данной проблеме.
Всё, что нужно знать – [url=https://gunsfriend.ru/vyvod-iz-zapoya-put-k-novoy-zhizni/]Капельница после запоя[/url]
Thanks so much for this, keep up the good work 🙂
I like to spend my free time by scaning various internet recourses. Today I came across your site and I found it is as one of the best free resources available! Well done! Keep on this quality!
When are you going to take this to a full book?
Some genuinely choice content on this site, bookmarked .
Allow yourself the delight of navigating our prestigious casino games library to savor миссия невыполнима онлайн
перевод документов новосибирск
В этой статье рассматриваются способы преодоления зависимости и успешные истории людей, которые справились с этой проблемой. Мы обсудим важность поддержки со стороны близких и профессионалов, а также стратегии, которые могут помочь в процессе выздоровления. Научитесь первоочередным шагам к новой жизни.
Перейти к полной версии – [url=https://90is.ru/kapelnica-ot-pohmelya-spasenie-ili-mif/]капельница от похмелья в Твери[/url]
We are a group of volunteers and starting a new initiative in our community. Your blog provided us with valuable information to work on|.You have done a marvellous job!
https://medibang.com/author/28475165/
нотариальные переводы новосибирск
перевод документов новосибирск
новосибирск перевод на английский
We cordially invite you to witness the magnificent casino games portfolio LeonMarkKevin
You write Formidable articles, keep up good work.
It’s very effortless to find out any topic on net as compared to textbooks,
as I found this article at this website.
My brother suggested I might like this website. He was totally
right. This post truly made my day. You can not imagine just how much time I had spent for this info!
Thanks!
В этой статье рассматриваются актуальные вопросы, связанные с развитием медицинской науки и её внедрением в повседневную практику. Особое внимание уделено вопросам профилактики, ранней диагностики и использованию технологий для улучшения здоровья человека.
Хочу знать больше – [url=https://glaznoy-doctor.ru/без-рубрики/alkogolnaya-intoksikaciya-i-poterya-zreniya-mexanizmy-razrusheniya-glaznogo-nerva-i-ekstrennaya-pomoshh.html]нарколог на дом цена воронеж[/url]
thanks so much for published.
перевод документов новосибирск
новосибирск перевод на английский
I’m truly enjoying the design and layout of your blog.
It’s a very easy on the eyes which makes it much more enjoyable for me to come
here and visit more often. Did you hire out a developer to
create your theme? Fantastic work!
перевод документов новосибирск
Hello Dear, are you actually visiting this website on a regular basis, if
so then you will absolutely take pleasant knowledge.
Woah! I’m really loving the template/theme of this blog. It’s simple, yet effective.
A lot of times it’s very difficult to get that
“perfect balance” between usability and visual appearance.
I must say you’ve done a very good job with this.
In addition, the blog loads very fast for me on Firefox.
Exceptional Blog!
сделать капельницу от алкоголя [url=https://kapelnicza-ot-pokhmelya-samara-28.ru]сделать капельницу от алкоголя[/url]
В данном обзоре представлены основные направления и тренды в области медицины. Мы обсудим актуальные проблемы здравоохранения, свежие открытия и новые подходы, которые меняют представление о лечении и профилактике заболеваний. Эта информация будет полезна как специалистам, так и широкой публике.
Что ещё нужно знать? – [url=https://3news.ru/kak-pobedit-alkogolnuyu-zavisimost-lechenie-i-reabilitacziya/]клиника плюс тверь[/url]
What’s up, I check your blogs regularly. Your
story-telling style is awesome, keep it up!
лбс это [url=https://shkola-onlajn-51.ru]https://shkola-onlajn-51.ru[/url]
Публикация охватывает основные направления развития современной медицины. Мы обсудим значимость научных исследований, инноваций в лечении и роли общественного участия в формировании системы здравоохранения.
Посмотреть подробности – [url=https://cultmoscow.com/sobytiya/narkologicheskaya-klinika-speczializirovannaya-pomoshh-v-lechenii-narkomanii/]кодировка от алкоголя владимир[/url]
Эта публикация обращает внимание на важность профилактики зависимостей. Мы обсудим, как осведомленность и образование могут помочь в предотвращении возникновения зависимости. Читатели смогут ознакомиться с полезными советами и ресурсами, которые способствуют здоровому образу жизни.
Разобраться лучше – [url=https://dooralei.ru/zdorove/lechenie-alkogolizma-i-narkomanii-osobennosti/]сайт наркологической клиники[/url]
Публикация охватывает основные направления развития современной медицины. Мы обсудим значимость научных исследований, инноваций в лечении и роли общественного участия в формировании системы здравоохранения.
Получить дополнительную информацию – [url=https://www.pravda-tv.ru/2023/09/04/579605/vyvod-iz-zapoya-preimushhestva-i-organizatsiya-protsessa-na-domu]наркологическая клиника во владимире[/url]
Incredible! This blog looks exactly like my old one! It’s on a entirely different subject but it has
pretty much the same layout and design. Outstanding choice of colors!
Hey would you mind letting me know which webhost you’re working
with? I’ve loaded your blog in 3 different internet browsers and I must say this blog loads a lot faster then most.
Can you recommend a good internet hosting provider at a reasonable price?
Thank you, I appreciate it!
В этой статье рассматривается комплексный подход к избавлению от зависимости. Читатель узнает, как сочетание физического, психологического и духовного восстановления помогает достичь стойкого выздоровления.
Получить профессиональную консультацию – [url=https://happyformat.ru/stati/kapelnitsa-ot-pohmelya-v-balashihe-anonimno-na-domu-i-v-statsionare-bystroe-reshenie-dlya-vosstanovleniya.html]наркологическая помощь в Балашихе[/url]
пробить адрес по номеру телефона [url=www.kak-najti-cheloveka-po-nomeru-telefona-2.ru]www.kak-najti-cheloveka-po-nomeru-telefona-2.ru[/url]
เนื้อหานี้ อ่านแล้วเพลินและได้สาระ ครับ
ดิฉัน ไปอ่านเพิ่มเติมเกี่ยวกับ เรื่องที่เกี่ยวข้อง
สามารถอ่านได้ที่ ทางเข้า genie168
ลองแวะไปดู
มีการยกตัวอย่างที่เข้าใจง่าย
ขอบคุณที่แชร์ บทความคุณภาพ นี้
จะรอติดตามเนื้อหาใหม่ๆ ต่อไป
Наши специалисты профессионально сделают замеры, оформят заказ на оконные и дверные блоки, выполнят монтаж где заказать пластиковые окна в москве
Текст посвящён распространённым мифам о зависимости и их развенчанию. Мы предоставим научно обоснованную информацию и дадим рекомендации по выбору эффективного способа борьбы с зависимым поведением.
Изучить эмпирические данные – [url=https://pronikotin.ru/stati/lechenie-xronicheskogo-alkogolizma-vygodnye-ceny-v-tveri-anonimno-kruglosutochno.html]клиника плюс[/url]
Этот текст посвящён сложным аспектам зависимости и её влиянию на жизнь человека. Мы обсудим психологические, физические и социальные последствия зависимого поведения, а также важность своевременного обращения за помощью.
ТОП-5 причин узнать больше – [url=https://velosipedmsk.ru/kapelnicza-ot-zapoya-v-smolenske-polnoe-rukovodstvo-po-detoksikaczii-i-vosstanovleniyu/]smolensk alco rehab[/url]
It’s not my first time to visit this website, i am visiting this web site dailly and get pleasant facts from
here daily.
Этот текст посвящён сложным аспектам зависимости и её влиянию на жизнь человека. Мы обсудим психологические, физические и социальные последствия зависимого поведения, а также важность своевременного обращения за помощью.
Наши рекомендации — тут – [url=https://coollib.in/node/580813]наркологическая клиника во владимире[/url]
โพสต์นี้ อ่านแล้วเข้าใจง่าย ค่ะ
ผม ไปเจอรายละเอียดของ เรื่องที่เกี่ยวข้อง
สามารถอ่านได้ที่ Valentin
เผื่อใครสนใจ
มีการยกตัวอย่างที่เข้าใจง่าย
ขอบคุณที่แชร์ เนื้อหาดีๆ นี้
และหวังว่าจะมีข้อมูลใหม่ๆ มาแบ่งปันอีก
Greetings! I’ve been reading your blog for a long time now and finally got the courage to
go ahead and give you a shout out from Lubbock Texas!
Just wanted to tell you keep up the excellent job!
запой санкт петербург [url=https://vyvod-iz-zapoya-v-staczionare-sankt-peterburg-31.ru]запой санкт петербург[/url]
В данной статье рассматриваются проблемы общественного здоровья и социальные факторы, влияющие на него. Мы акцентируем внимание на значении профилактики и осведомленности в защите здоровья на уровне общества. Читатели смогут узнать о новых инициативах и программах, направленных на улучшение здоровья населения.
Доступ к полной версии – [url=https://mirlady.org/narkologicheskaya-klinika-v-luganske-kakie-osobennosti/]вывод из запоя в Луганске[/url]
Artikel yang sangat menarik dan informatif.
Banyak pengguna di Indonesia mencari informasi terpercaya tentang viagra indonesia dan kesehatan pria.
Konten seperti ini sangat membantu pembaca memahami penggunaan yang aman dan efektif.
Terima kasih atas artikel yang bermanfaat ini. Topik viagra indonesia memang
banyak dicari saat ini, terutama bagi mereka yang ingin mendapatkan informasi kesehatan pria secara aman dan tepat.
Konten yang bagus dan mudah dipahami. Informasi mengenai viagra indonesia sangat
relevan dan membantu banyak orang mendapatkan edukasi yang benar tentang kesehatan pria.
перевод документов новосибирск
новосибирск перевод на английский
В этой публикации мы обсуждаем современные методы лечения различных заболеваний. Читатели узнают о новых медикаментах, терапиях и исследованиях, которые активно применяются для лечения. Мы нацелены на то, чтобы предоставить практические знания, которые могут помочь в борьбе с недугами.
Откройте для себя больше – [url=https://onelove.su/kak-najti-nadyozhnuyu-narkologicheskuyu-kliniku-v-mariupole-chto-vazhno-znat-i-na-chto-obratit-vnimanie/]detox24 в мариуполе[/url]
Hi, I think your blog might be having browser compatibility
issues. When I look at your blog in Safari, it
looks fine but when opening in Internet Explorer, it has some overlapping.
I just wanted to give you a quick heads up! Other then that, fantastic blog!
It’s an awesome piece of writing for all the web viewers; they will obtain advantage from
it I am sure.
canl? bahis 1x bet [url=https://1xbet-giris-77.com]https://1xbet-giris-77.com[/url]
нотариальные переводы новосибирск
перевод паспорта новосибирск
Этот текст посвящён сложным аспектам зависимости и её влиянию на жизнь человека. Мы обсудим психологические, физические и социальные последствия зависимого поведения, а также важность своевременного обращения за помощью.
Это ещё не всё… – [url=https://rem-kvart.ru/sovety/kak-opredelit-nalichie-narkoticheskoj-zavisimosti-i-otlichit-ot-vremennyx-sostoyanij.html]наркологическую клинику в Балашихе[/url]
https://shapemyskills.in/members/peakbat7/activity/23222/
I love how you manage to keep your readers on the edge of their seats with such tactical layout and sharp commentary, capturing the exact same suspense as waiting for the next round in a popular evolution game.
There’s definately a lot to know about this issue.
I really like all of the points you made.
The profound depth and vivid imagery you bring to this piece show a level of mastery that makes your content feel incredibly premium, offering a level of excitement that rivals a thrilling game of KingMidas.
перевод документов новосибирск
перевод паспорта новосибирск
перевод документов новосибирск
перевод документов новосибирск
http://daojianchina.com/home.php?mod=space&uid=1151679
перевод документов новосибирск
I just like the helpful information you supply for your articles.
I will bookmark your blog and take a look at again right here regularly.
I’m slightly certain I’ll learn a lot of new stuff right right here!
Best of luck for the following!
перевод документов новосибирск
перевод паспорта новосибирск
Hello, this weekend is pleasant in favor of me, for the reason that this point in time
i am reading this impressive educational post here at my house.
новосибирск перевод на английский
перевод документов новосибирск
This is really interesting, You’re a very skilled blogger. I have joined your feed and look forward to seeking more of your fantastic post. Also, I have shared your website in my social networks!
перевод документов новосибирск
There’s certainly a lot to know about this issue.
I love all the points you’ve made.
ثلاث ثمانيات ستارز [url=http://colindaylinks.com/]https://colindaylinks.com/[/url]
Hey there would you mind letting me know which hosting company you’re working with?
I’ve loaded your blog in 3 completely different web browsers and I must
say this blog loads a lot quicker then most.
Can you suggest a good hosting provider at a honest price?
Cheers, I appreciate it!
нотариальные переводы новосибирск
перевод паспорта новосибирск
Этот краткий обзор предлагает сжатую информацию из области медицины, включая ключевые факты и последние новости. Мы стремимся сделать информацию доступной и понятной для широкой аудитории, что позволит читателям оставаться в курсе актуальных событий в здравоохранении.
Изучить вопрос глубже – [url=https://kardioportal.ru/content/ot-chego-lopayutsya-kapillyary-v-glazah]детоксикация на дому[/url]
перевод паспорта новосибирск
новосибирск перевод на английский
наркологический стационар санкт петербург [url=https://narkologicheskij-staczionar-sankt-peterburg-14.ru]наркологический стационар санкт петербург[/url]
алкоголизм лечение выезд на дом [url=https://narkolog-na-dom-moskva-28.ru]алкоголизм лечение выезд на дом[/url]
новосибирск перевод на английский
перевод паспорта новосибирск
These are truly wonderful ideas in on the topic of blogging.
You have touched some pleasant points here. Any way keep up wrinting.
เนื้อหานี้ ให้ข้อมูลดี ครับ
ดิฉัน ไปเจอรายละเอียดของ ข้อมูลเพิ่มเติม
ดูต่อได้ที่ gu899
น่าจะถูกใจใครหลายคน
เพราะอธิบายไว้ละเอียด
ขอบคุณที่แชร์ คอนเทนต์ดีๆ นี้
และหวังว่าจะได้เห็นโพสต์แนวนี้อีก
перевод документов новосибирск
Suit up and march through the roaring casino games kingdom ready to be conquered lev bet
нотариальные переводы новосибирск
I was suggested this blog by my cousin. I am not sure
whether this post is written by him as no one else know such detailed about
my trouble. You’re wonderful! Thanks!
нотариальные переводы новосибирск
Hey! I know this is somewhat off topic but I was wondering if you
knew where I could locate a captcha plugin for my
comment form? I’m using the same blog platform as yours and I’m
having problems finding one? Thanks a lot!
ветка форума
Great blog here! Also your site loads up fast! What web host are you using?
Can I get your affiliate link to your host? I wish my website loaded up as
fast as yours lol
I’m amazed, I have to admit. Rarely do I encounter a blog that’s both equally educative and amusing, and
without a doubt, you’ve hit the nail on the head.
The problem is something that too few folks are
speaking intelligently about. I am very happy
that I came across this during my search for something concerning this.
Текст посвящён распространённым мифам о зависимости и их развенчанию. Мы предоставим научно обоснованную информацию и дадим рекомендации по выбору эффективного способа борьбы с зависимым поведением.
Всё, что нужно знать – [url=https://b-tattoo.ru/vyvod-iz-zapoya-v-krasnodare-bystro-bezopasno-anonimno.html]наркологическая клиника краснодар[/url]
This contained some excellent tips and tools. Great blog publication.
перевод документов новосибирск
перевод документов новосибирск
I love it when individuals come together and share ideas.
Great blog, stick with it!
В этой публикации мы предложим ряд рекомендаций по избавлению от зависимостей и успешному восстановлению. Мы обсудим методы привлечения поддержки и важность самосознания. Эти советы помогут людям вернуться к нормальной жизни и стать на путь выздоровления.
Изучить рекомендации специалистов – [url=https://dlja-pohudenija.ru/lechenie-zabolevanij/vyvod-iz-zapoya]детоксикация на дому[/url]
перевод паспорта новосибирск
новосибирск перевод на английский
obviously like your web-site however you need
to test the spelling on quite a few of your posts.
Many of them are rife with spelling problems and
I to find it very troublesome to inform the truth nevertheless I’ll certainly come again again.
нотариальные переводы новосибирск
Официальный сайт BlackSprut
bs2best вход
нарколог на дом анонимно [url=https://narkolog-na-dom-ekaterinburg-13.ru]нарколог на дом анонимно[/url]
It’s going to be finish of mine day, but before end
I am reading this great post to improve my knowledge.
перевод документов новосибирск
нотариальные переводы новосибирск
перевод документов новосибирск
новосибирск перевод на английский
В этой статье мы рассматриваем разрушительное влияние зависимости на жизнь человека. Обсуждаются аспекты, такие как здоровье, отношения и профессиональные достижения. Читатели узнают о необходимости обращения за помощью и о путях к восстановлению.
Уникальные данные только сегодня – [url=https://kozhica.ru/safehair/narkologicheskaya-klinika-v-lyubertsah-novye-podhody-k-lecheniyu.html]детский психиатр люберцы[/url]
Well done! Keep up this quality!
Lean in and glide across the sparkling casino games wonderland dying to be seized https://sultanus.genchstroy.kz/
ستار 888 [url=colindaylinks.com]https://colindaylinks.com/[/url]
I used to be suggested this website via my cousin. I am not positive whether or not this post is written by way of him as nobody else understand such specified about my difficulty.
You are wonderful! Thanks!
Good day! I could have sworn I’ve been to this
blog before but after browsing through a few of
the articles I realized it’s new to me. Anyhow, I’m definitely delighted I discovered it and I’ll be bookmarking it and checking
back regularly!
I love what you’ve created here, this is definitely one of my favorite sites to visit.
перевод паспорта новосибирск
Heya i am for the first time here. I came across this board and I find It really useful & it helped me out a lot.
I’m hoping to offer something again and aid others like
you aided me.
hey thanks for the info. appreciate the good work
Hello everyone, it’s my first go to see at this website,
and paragraph is actually fruitful in favor of
me, keep up posting these types of articles.
новосибирск перевод на английский
Stay updated with team form, live football scores, and match analysis through the football results app platform.
Explore detailed NBA player stats and live basketball coverage using the nba live games & scores app for real time game tracking.
перевод документов новосибирск
Howdy! I’m at work surfing around your blog from my new iphone 4!
Just wanted to say I love reading through your blog and look forward to all your posts!
Keep up the fantastic work!
Wow, this paragraph is fastidious, my younger sister is analyzing these kinds of things, so I am going to let know her.
There’s something remarkably natural about your writing style because it never feels forced, and that easygoing rhythm reminded me of the simple enjoyment people experience while playing Golden Queen.
нарколог стационар спб [url=https://narkologicheskij-staczionar-sankt-peterburg-14.ru]нарколог стационар спб[/url]
My relatives every time say that I am killing my time here at web, however
I know I am getting experience everyday by reading such
nice content.
I started reading your post during a quiet afternoon, and before I knew it I was completely absorbed, feeling the same thrill and anticipation I get when exploring Fortune Coins for the first time.
Last night I stayed up longer than intended because each paragraph pulled me deeper into your narrative, giving me the same quiet thrill that comes from carefully planning moves in Color Games.
перевод документов новосибирск
перевод паспорта новосибирск
нотариальные переводы новосибирск
It’s remarkable for me to have a site, which is good in support of my experience.
thanks admin
нотариальные переводы новосибирск
кодирование от алкоголизма стационар [url=https://narkologicheskij-staczionar-sankt-peterburg-11.ru]кодирование от алкоголизма стационар[/url]
новосибирск перевод на английский
нотариальные переводы новосибирск
кодирование от алкоголизма стационар [url=https://narkologicheskij-staczionar-sankt-peterburg-11.ru]кодирование от алкоголизма стационар[/url]
Hello very cool web site!! Man .. Beautiful ..
Superb .. I will bookmark your web site and take the
feeds additionally? I am glad to find a lot of useful information here within the put up, we’d like develop more techniques in this regard, thanks for sharing.
. . . . .
Социальный проект Volonteru — платформа для волонтеров и поддержки общества. Здесь публикуются обзоры социальных проектов, а также статьи о безопасности в сети.
Главный портал сообщества: https://volonteru.ru
Сегодня многие пользователи активно интересуются запросами «кракен даркнет», а также «kraken darknet». Специалисты проекта советуют соблюдать осторожность в интернете.
[url=https://volonteru.ru]kraken ссылка[/url]
На сайте проекта регулярно выходят материалы о безопасности пользователей, а также истории волонтеров. Люди, интересующиеся темами «кракен маркет», могут попасть на опасные ресурсы.
[url=https://volonteru.ru]кракен настоящая ссылка[/url]
Эксперты платформы регулярно рассказывают о цифровой безопасности. В материалах проекта часто обсуждаются темы, связанные с опасными интернет-ресурсами, которые могут встречаться пользователям при поиске запросов «kraken onion».
Современный интернет постоянно меняется, и вместе с полезными сервисами появляются новые угрозы.
[url=https://volonteru.ru]кракен ссылка[/url]
На платформе Volonteru.ru также публикуются обзоры благотворительных проектов. Проект объединяет людей, готовых помогать обществу и одновременно напоминает о важности интернет-безопасности.
Многие пользователи изучают запросы «kraken darknet», однако важно помнить о цифровой безопасности.
[url=https://volonteru.ru]Кракен даркнет[/url]
По этой причине специалисты платформы рекомендуют использовать только надежные источники информации. Команда проекта считает важным повышать цифровую грамотность пользователей и помогать развитию социальных инициатив.
Volonteru.ru объединяет волонтеров и активистов, а также публикует контент о цифровой безопасности.
перевод документов новосибирск
Публикация посвящена жизненным историям людей, успешно справившихся с зависимостью. Мы покажем, что выход есть, и он начинается с первого шага — принятия проблемы и желания измениться.
Открой скрытое – [url=http://ussur.net/news/75430/]капельница на дому калининград[/url]
Поведение пациента при алкогольной интоксикации может резко меняться: появляется агрессия, страх, потеря контроля, раздражительность, нарушение памяти, бессонница, депрессии, тревога, психозов. В таких случаях врач должен оценить состояние пациента и решить, возможен ли вывод из запоя на дому или требуется госпитализация в стационаре.
Разобраться лучше – [url=https://vyvod-iz-zapoya-sochi20.ru/]вывод из запоя на дому недорого в сочи[/url]
Good job for bringing something important to the internet!
перевод документов новосибирск
Your way of telling everything in this piece of writing is genuinely nice, all be capable of easily
know it, Thanks a lot.
The way you craft your sentences draws me in completely, reminding me of the suspenseful anticipation I feel playing Color Games.
I am very happy to look your post. Thanks a lot and i am taking a look ahead to touch you.
I want to see your book when it comes out.
I’d like to thank you for the efforts you have put in writing this
website. I’m hoping to view the same high-grade content by you in the future as well.
In fact, your creative writing abilities has motivated me to get my
own website now 😉
โพสต์นี้ น่าสนใจดี ครับ
ผม ไปเจอรายละเอียดของ
เรื่องที่เกี่ยวข้อง
ที่คุณสามารถดูได้ที่ betflik282
น่าจะถูกใจใครหลายคน
เพราะอธิบายไว้ละเอียด
ขอบคุณที่แชร์ ข้อมูลที่มีประโยชน์
นี้
จะรอติดตามเนื้อหาใหม่ๆ
ต่อไป
Great blog right here! You seem to put a significant amount of material on the site rather quickly.
I’ll check back after you publish more articles.
нотариальные переводы новосибирск
врача капельницу от запоя [url=https://kapelnicza-ot-pokhmelya-ekaterinburg-16.ru]https://kapelnicza-ot-pokhmelya-ekaterinburg-16.ru[/url]
Everything is very open with a precise explanation of the issues.
It was really informative. Your site is useful.
Thanks for sharing!
перевод паспорта новосибирск
новосибирск перевод на английский
вывод из запоя недорого [url=https://vyvod-iz-zapoya-na-domu-ekaterinburg-27.ru]вывод из запоя недорого[/url]
нарколог запой [url=https://vyvod-iz-zapoya-na-domu-ekaterinburg-30.ru]нарколог запой[/url]
https://www.salmo.ru/catalog/aeratory/ Недостаток кислорода в искусственных водоемах –
Superb, what a website it is! This website gives helpful
data to us, keep it up.
A person essentially help to make severely articles I might state.
That is the first time I frequented your web page and to this point?
I amazed with the analysis you made to create this particular publish extraordinary.
Excellent task!
You can definitely see your expertise in the article you write.
The arena hopes for even more passionate writers such as you who aren’t afraid to mention how they believe.
All the time follow your heart.
This is a topic that is near to my heart… Thank you!
Where are your contact details though?
электрокарнизы купить в москве [url=https://elektrokarniz150.ru]электрокарнизы купить в москве[/url]
новосибирск перевод на английский
перевод паспорта новосибирск
вывод из запоя с выездом [url=https://vyvod-iz-zapoya-na-domu-ekaterinburg-27.ru]вывод из запоя с выездом[/url]
Этот текст посвящён сложным аспектам зависимости и её влиянию на жизнь человека. Мы обсудим психологические, физические и социальные последствия зависимого поведения, а также важность своевременного обращения за помощью.
Посмотреть подробности – [url=https://vampshop.ru/blog/obsessivno-kompulsivnoe-rasstrojstvo-lichnosti-okrl-put-k-vyzdorovleniyu]detox24 в краснодаре[/url]
вывести из запоя екатеринбург [url=https://vyvod-iz-zapoya-na-domu-ekaterinburg-30.ru]вывести из запоя екатеринбург[/url]
เนื้อหานี้ มีประโยชน์มาก ครับ
ดิฉัน ได้อ่านบทความที่เกี่ยวข้องกับ หัวข้อที่คล้ายกัน
ซึ่งอยู่ที่ Norine
เผื่อใครสนใจ
เพราะให้ข้อมูลเชิงลึก
ขอบคุณที่แชร์ ข้อมูลที่มีประโยชน์ นี้
และหวังว่าจะได้เห็นโพสต์แนวนี้อีก
Review a dynamic gaming page where steady followers can share balanced play, and Scatter Game adds flexible updates, clear movement, and agile format during short breaks that gives direct online every visit more clarity
Enter this engaging destination for interested readers who compare direct entry, prefer wisely browsing, and want flexible settings with agile simplicity through Fa Chai that keeps the gaming page style page useful and appealing
Enter a balanced gaming page where weekend visitors can rely on smooth browsing, and bathala game adds flexible mechanics, clear movement, and agile pattern for smooth discovery that offers access a brighter digital experience
Find a inviting gaming page where modern users can keep quick loading, and bathala online adds flexible playflows, clear movement, and agile quality through simple steps trust smart friendly modern that encourages confident clicks
перевод паспорта новосибирск
See a refined gaming page where curious readers can welcome focused content, and Bathala adds flexible discoveries, clear movement, and agile clarity for balanced exploration that makes focus clarity appeal smart browsing feel natural
Browse a inviting gaming page where modern users can keep quick loading, and Color Game adds flexible playflows, clear movement, and relaxed character through simple steps quality balance energy timing that encourages confident clicks
There are adult sites now that actually feel professional
Check out my webpage :: https://all-adipex.info
Вызов нарколога на дом актуален в ситуации, когда пациент не может самостоятельно прийти на прием в клинике, агрессивно реагирует на уговоры, находится в тяжелой похмельной интоксикации или боится постановки на учет. Врач помогает на месте: проводит первичная диагностика, осмотр, назначает медикаментозные процедуры, дает рекомендации по дальнейшему лечению и объясняет родственникам, как действовать после приезда бригады.
Получить дополнительную информацию – [url=https://narkolog-na-dom-kazan22.ru/]запой нарколог на дом[/url]
нотариальные переводы новосибирск
Pinata Wins gives digital explorers a dynamic place to notice smart organization with casually browsing, flexible rewards, and relaxed entry for page value during quick decisions style value focus clarity that feels worth revisiting
перевод документов новосибирск
I saw a similar post on another website but the points were not as well articulated.
When we look at these issues, we know that they are the key ones for our time.
If most people wrote about this subject with the eloquence that you just did, I’m sure people would do much more than just read, they act. Great stuff here. Please keep it up.
Well done! Keep up this quality!
Этот обзор посвящен успешным стратегиям избавления от зависимости, включая реальные примеры и советы. Мы разоблачим мифы и предоставим читателям достоверную информацию о различных подходах. Получите опыт многообразия методов и найдите подходящий способ для себя!
Погрузиться в научную дискуссию – [url=https://popname.ru/posts/alkogolizm-i-otkaz-ot-alkogolya]наркологическая помощь краснодар[/url]
I found Gali Satta Result while searching online for chart information. The website design is simple, and the daily updates are displayed in a neat format.
I will share you blog with my sis.
This is valuable stuff.In my opinion, if all website owners and bloggers developed their content they way you have, the internet will be a lot more useful than ever before.
В этой статье рассматриваются различные аспекты избавления от зависимости, включая физические и психологические методы. Мы обсудим поддержку, мотивацию и стратегии, которые помогут в процессе выздоровления. Читатели узнают, как преодолеть трудности и двигаться к новой жизни без зависимости.
Информация доступна здесь – [url=http://www.dietaonline.ru/portal/articles/1049-lechenie-alkogolizma-pochemu-stoit-obratitsja-za-pomoschju-svoevremenno.html]detox24[/url]
I’m so happy to read this. This is the type of manual that needs to be given and not the random misinformation that’s at the other blogs. Appreciate your sharing this best doc.
Is it okay to put a portion of this on my weblog if perhaps I post a reference point to this web page?
As a newcomer, I’m absolutely captivated by the fascinating topics in Super Jackpot, especially the lively discussions. The sheer number of comments on your articles clearly shows I’m not the only one hooked! Super Jackpot
вывод из запоя на дому [url=https://vyvod-iz-zapoya-na-domu-ekaterinburg-27.ru]вывод из запоя на дому[/url]
вывод из запоя на дому екатеринбург [url=https://vyvod-iz-zapoya-na-domu-ekaterinburg-30.ru]вывод из запоя на дому екатеринбург[/url]
Took me time to read all the comments, but I really enjoyed the article. It proved to be Very helpful to me and I am sure to all the commenters here It’s always nice when you can not only be informed, but also entertained I’m sure you had fun writing this article.
My brother suggested I might like this websiteHe was once totally rightThis post truly made my dayYou can not imagine simply how a lot time I had spent for this information! Thanks!
Этот обзор содержит информацию о передовых достижениях в области медицины. Мы разберем инновационные технологии, которые меняют подход к лечению и диагностике, а также их влияние на эффективность оказания медицинской помощи.
Читать дальше – [url=https://mycistit.ru/eto-interesno/kak-osvoboditsya-ot-alkogolya-kodirovka-i-ee-effektivnost]детокс24 краснодар[/url]
I do not even know the way I finished up here, however I assumed this
publish was once great. I do not know who you are but certainly you’re
going to a well-known blogger when you are not already.
Cheers!
想把综艺区入口单独留着时从这页进会更快切到别的频道也快综艺区综艺片单直达页
Makes sense to me.
想把短剧区入口单独留着时先保留这张入口页整页翻起来更舒服52sofa.vip影视短剧区导航
Spot on with this write-up, I actually assume this website needs far more consideration. I will in all probability be once more to learn rather more, thanks for that info.
нарколога вызвать на дом [url=https://narkolog-na-dom-samara-9.ru]https://narkolog-na-dom-samara-9.ru[/url]
Your storytelling style feels very human because you allow emotions and ideas to unfold naturally instead of trying too hard to impress readers, which honestly reminded me of the calm enjoyment people find while exploring Table Game casually online.
нарколог [url=https://narkolog-na-dom-samara-10.ru]нарколог[/url]
В этой статье обсуждаются актуальные медицинские вопросы, которые волнуют общество. Мы обращаем внимание на проблемы, касающиеся здравоохранения и лечения, а также на новшества в области медицины. Читатели будут осведомлены о последних событиях и смогут следить за тенденциями в медицине.
Смотрите также – [url=https://zdorovnik.com/zakulise-alkogolizma-razbiraem-prichiny-i-faktory-vliyayushhie-na-razvitie-zavisimosti/]кодировка от алкоголя краснодар[/url]
Hi, I do believe this is an excellent web site. I stumbledupon it 😉 I’m going
to revisit once again since i have saved as a favorite it. Money and freedom is the greatest way to change, may you be rich and continue to help
other people.
Мы предлагаем быстрое и удобное оформление справок, свидетельств и апостиля для физических лиц https://apostilium-moscow.com/svidetelstvo-o-smerti/
капельница от похмелья в воронеже [url=https://kapelnicza-ot-pokhmelya-voronezh-17.ru]капельница от похмелья в воронеже[/url]
Этот текст представляет собой обзор свежих данных и исследований в области медицины. Он призван помочь читателям понять, как научные достижения влияют на лечение, диагностику и общее состояние системы здравоохранения.
Получить больше информации – [url=https://otravlenye.ru/vidy/alko-i-narko/kak-rabotaet-kodirovanie-ot-alkogolizma.html]detox24 в краснодаре[/url]
Полная версия статьи: https://elicebeauty.com/ukhod-za-kozhey/glaza-i-guby/kremy/zashchitniy-balzam-dlya-gub-s-gialuronovoy-kislotoy.html
реабилитация наркозависимых стационар [url=https://narkologicheskij-staczionar-sankt-peterburg-10.ru]реабилитация наркозависимых стационар[/url]
рулонные шторы на пластиковые окна купить [url=https://rulonnye-shtory-s-elektroprivodom190.ru]https://rulonnye-shtory-s-elektroprivodom190.ru[/url]
капельница от запоя в стационаре [url=https://vyvod-iz-zapoya-v-staczionare-nizhnij-novgorod-17.ru]https://vyvod-iz-zapoya-v-staczionare-nizhnij-novgorod-17.ru[/url]
нарколога на дом [url=https://narkolog-na-dom-samara-9.ru]нарколога на дом[/url]
Very soon this website will be famous among all blogging visitors, due to it’s good
posts
наркологический стационар спб [url=https://narkologicheskij-staczionar-sankt-peterburg-10.ru]наркологический стационар спб[/url]
Hi, I think your site might be having browser compatibility issues.
When I look at your blog in Ie, it looks fine but when opening in Internet Explorer,
it has some overlapping. I just wanted to give you a quick heads up!
Other then that, superb blog!
поставить капельницу от запоя [url=https://kapelnicza-ot-pokhmelya-voronezh-17.ru]поставить капельницу от запоя[/url]
капельница от похмелья на дому [url=https://kapelnicza-ot-pokhmelya-samara-32.ru]капельница от похмелья на дому[/url]
рулонные шторы на кухню с балконом [url=https://rulonnye-shtory-s-elektroprivodom190.ru]https://rulonnye-shtory-s-elektroprivodom190.ru[/url]
Great info! Keep post great articles.
Этот документ охватывает важные аспекты медицинской науки, сосредотачиваясь на ключевых вопросах, касающихся здоровья населения. Мы рассматриваем свежие исследования, клинические рекомендации и лучшие практики, которые помогут улучшить качество лечения и профилактики заболеваний. Читатели получат возможность углубиться в различные медицинские дисциплины.
Подробная информация доступна по запросу – [url=https://zdorovnik.com/pochemu-stoit-vybrat-chastnuyu-kliniku-lecheniya-alkogolizma-preimushhestva-i-osobennosti/]detox24[/url]
Наша компания помогает быстро оформить справки, свидетельства и апостиль для учебы, работы, переезда и других целей. Мы обеспечиваем профессиональный подход к каждому обращению https://apostilium-moscow.com/spravki-iz-zags/
нарколог на дому капельница цена [url=https://narkolog-na-dom-samara-9.ru]нарколог на дому капельница цена[/url]
стационар наркологический санкт петербург [url=https://narkologicheskij-staczionar-sankt-peterburg-10.ru]стационар наркологический санкт петербург[/url]
โพสต์นี้ ให้ข้อมูลดี ครับ
ผม ไปเจอรายละเอียดของ เรื่องที่เกี่ยวข้อง
สามารถอ่านได้ที่ Rosaline
เผื่อใครสนใจ
มีการยกตัวอย่างที่เข้าใจง่าย
ขอบคุณที่แชร์ คอนเทนต์ดีๆ นี้
และหวังว่าจะได้เห็นโพสต์แนวนี้อีก
Lace up and storm through the sizzling casino games battlefield ready to dominate https://t.me/apexcasino_play
Вызов нарколога на дом в Казани. Круглосуточная наркологическая помощь на дому: лечение запоя, детоксикация, капельница, консультация. Анонимный прием. Узнайте цену в клинике.
Изучить вопрос глубже – [url=https://narkolog-na-dom-kazan23.ru/]narkolog-na-dom-kazan23.ru/[/url]
Мы предлагаем оформление документов под ключ, включая справки, свидетельства и апостиль для использования за границей – https://apostilium-moscow.com/notarialno-zaverenniy-perevod/
займы онлайн на карту без отказа https://tbcareer.ru
капельница на дому екатеринбург цены [url=https://kapelnicza-ot-pokhmelya-ekaterinburg-17.ru]капельница на дому екатеринбург цены[/url]
Thanks for providing recent updates regarding the concern, I look forward to read more.
Работа по программе строится последовательно: сначала зависимый признает болезнь и перестает объяснять употребление внешними обстоятельствами, затем переходит к самоанализу, разбору поступков, исправлению ошибок и формированию новых привычек. Каждый шаг помогает не перескакивать через сложные темы, а идти по понятной системе, где лечение зависимости связано с ответственностью, готовностью к изменениям и отказом от прежних оправданий.
Подробнее – [url=https://reabilitaciya-12-shagov-moskva13.ru/]центры реабилитации 12 шагов[/url]
Your storytelling style keeps readers engaged from start to finish because the rhythm of your sentences feels natural and conversational, much like the easy immersion people often find in evolution game.
Вывод из запоя в Казани на дому и в клинике: врач-нарколог, капельница, детоксикация, лечение алкоголизма, кодирование, реабилитация — круглосуточная помощь анонимно.
Исследовать вопрос подробнее – [url=https://vyvod-iz-zapoya-kazan20.ru/]вывод из запоя круглосуточно[/url]
вывод из запоя недорого нарколог24 [url=https://vyvod-iz-zapoya-na-domu-sankt-peterburg-22.ru]https://vyvod-iz-zapoya-na-domu-sankt-peterburg-22.ru[/url]
Врач нарколог проводит первичный осмотр пациента, уточняет, сколько дней длится запой, какие напитки употреблялись, есть ли боль, рвотные позывы, бессонница, панические атаки, судороги, галлюцинации, повышенная тревожность или признаки белой горячки. После этого врач определяет, можно ли проводить вывод запоя на дому или лучше организовать лечение в стационаре.
Получить дополнительные сведения – [url=https://vyvod-iz-zapoya-kazan23.ru/]наркологический вывод из запоя[/url]
Генеральная уборка москва
It’s wonderful that you are getting ideas from this paragraph as well as from our discussion made at this time.
Thanks designed for sharing such a pleasant thought,
article is good, thats why i have read it fully
I am really impressed together with your writing skills and also with the layout
to your blog. Is this a paid theme or did you modify it your self?
Either way keep up the excellent high quality writing,
it is rare to peer a great weblog like this
one today..
врач нарколог на дом [url=https://narkolog-na-dom-samara-9.ru]врач нарколог на дом[/url]
В этой публикации мы исследуем ключевые аспекты здоровья, включая влияние образа жизни на благополучие. Читатели узнают о важности правильного питания, физической активности и психического здоровья. Мы предоставим практические советы и рекомендации для поддержания здоровья и развития профилактических подходов.
Кликни и узнай всё! – [url=https://www.medkursor.ru/other_about_health/vse/20010.html]detox24 в краснодаре[/url]
вызов нарколога на дом цена [url=https://narkolog-na-dom-voronezh-10.ru]https://narkolog-na-dom-voronezh-10.ru[/url]
It’s in fact very complicated in this full of activity life to listen news on TV,
thus I only use the web for that purpose, and get
the hottest information.
Этот обзор предлагает структурированное изложение информации по актуальным вопросам. Материал подан так, чтобы даже новичок мог быстро освоиться в теме и начать использовать полученные знания в практике.
Заходи — там интересно – [url=https://zazdorovie.net/meditsinskie-tsentry/7859_prichiny-vyzova-narkologa-na-dom]Похмельная служба в Краснодаре[/url]
It’s the best time to make some plans for the future and it is time to be happy. I’ve read this post and if I could I wish to suggest you some interesting things or tips. Maybe you can write next articles referring to this article. I wish to read even more things about it!
How do I subscribe to your blog? Thanks for your help.
If most people wrote about this subject with the eloquence that you just did, I’m sure people would do much more than just read, they act. Great stuff here. Please keep it up.
I really believe you will do well in the future I appreciate everything you have added to my knowledge base.
We are a group of volunteers and starting a new initiative in our community. Your blog provided us with valuable information to work on|.You have done a marvellous job!
I really believe you will do well in the future I appreciate everything you have added to my knowledge base.
Woah this is just an insane amount of information, must of taken ages to compile so thanx so much for just sharing it with all of us. If your ever in any need of related information, just check out my own site!
Stay updated with team form, live football scores, and match analysis through the football results app platform.
Explore detailed NBA player stats and live basketball coverage using the nba live games & scores app for real time game tracking.
I am very happy to look your post. Thanks a lot and i am taking a look ahead to touch you.
My partner and I absolutely love your blog and find the majority of
your post’s to be just what I’m looking for. Do you offer guest
writers to write content in your case? I wouldn’t
mind publishing a post or elaborating on a lot of
the subjects you write concerning here. Again, awesome website!
소액결제현금화 대신 고려할 수 있는 방법도 있습니다. 대표적으로 금융기관의 소액 대출, 간편 신용 서비스, 합법적인 자금 관리 서비스 등이 있습니다. 소액결제현금화
Amazing issues here. I’m very glad to peer your post.
Thank you a lot and I am looking forward to touch you. Will you please drop
me a e-mail?
вызов нарколога на дом цена [url=https://narkolog-na-dom-samara-9.ru]https://narkolog-na-dom-samara-9.ru[/url]
Hey there! Would you mind if I share your
blog with my zynga group? There’s a lot of folks that I think would really enjoy your content.
Please let me know. Many thanks
скачать видео ютуба [url=https://skachat-video-s-youtube-11.ru]скачать видео ютуба[/url]
Highly descriptive blog, I liked that a lot. Will there be a part 2?
нарколог нижний новгород [url=https://narkolog-na-dom-nizhnij-novgorod-2.ru]нарколог нижний новгород[/url]
В этом обзоре представлены различные методы избавления от зависимости, включая терапевтические и психологические подходы. Мы сравниваем их эффективность и предоставляем рекомендации для тех, кто хочет вернуться к трезвой жизни. Читатели смогут найти информацию о реабилитационных центрах и поддерживающих группах.
Изучить материалы по теме – [url=https://prostamed.ru/sovety/nemedlennaya-pomoshh-pri-zapoe.html]капельница от запоя[/url]
Worth saying that the writing carries a particular kind of authority without making any explicit claims to it, and a stop at brightcrestcollective extended that earned authority feeling, sites that demonstrate expertise through the quality of their explanations rather than by stating credentials are sites I trust most and this site has it.
Way cool! Some very valid points! I appreciate you
writing this write-up and the rest of the site is really good.
I’ve read several good stuff here. Definitely worth bookmarking for revisiting. I surprise how much effort you put to make such a magnificent informative site.
Hey just wanted to give you a quick heads up. The words in your content seem to be running off the screen in Safari.
I’m not sure if this is a formatting issue or something to
do with web browser compatibility but I thought I’d post to let you know.
The design look great though! Hope you get the problem fixed
soon. Kudos
Thank you, I have just been searching for information about this topic for ages and yours is the greatest I’ve discovered till now. But, what about the conclusion? Are you sure about the source?
I’ll check back after you publish more articles.
hey thanks for the info. appreciate the good work
Just wanna admit that this is extremely helpful, Thanks for taking your time to write this.
Its like you read my mind! You seem to know a lot about this, like you wrote the book in it or something. I think that you can do with some pics to drive the message home a bit, but other than that, this is wonderful blog. A great read. I’ll certainly be back.
наркологическая помощь на дому в воронеже [url=https://narkolog-na-dom-voronezh-14.ru]наркологическая помощь на дому в воронеже[/url]
That’s some inspirational stuff. Never knew that opinions might be this varied. Thanks for all the enthusiasm to supply such helpful information here.
Saw your material, and hope you publish more soon.
I all the time used to study article in news papers but
now as I am a user of web thus from now I am using
net for posts, thanks to web.
Wonderful items from you, man. I’ve remember your stuff previous to and you’re just extremely magnificent.
I actually like what you have received right here, certainly like what you are
saying and the best way through which you are saying it.
You’re making it enjoyable and you continue to care for to keep
it sensible. I can’t wait to read far more from you.
This is actually a tremendous web site.
Нужна бесплатная юридическая консультация? Переходите по запросу [url=https://vk.com/jurist.dmitrov]задать вопрос адвокату в Дмитрове[/url] и получите помощь опытных правозащитников в любой области права: семейные споры, долги и кредиты, недвижимость, трудовые конфликты, защита прав потребителей и многое другое. Задайте вопрос онлайн или по телефону и получите подробный разбор вашей ситуации и рекомендации адвоката по дальнейшим действиям. Консультация проводится бесплатно и конфиденциально.
Запоя лечение в клинике Сочи: вывод из запоя на дому, помощь нарколога, капельница, детоксикация, стационар, кодирование алкоголизма и реабилитация.
Подробнее тут – [url=https://vivod-iz-zapoya-sochi21.ru/]вывод из запоя капельница на дому[/url]
вывод из запоя цена [url=https://vyvod-iz-zapoya-na-domu-sankt-peterburg-22.ru]вывод из запоя цена[/url]
уборка квартир москва
I am really impressed with your writing skills
as well as with the layout on your weblog.
Is this a paid theme or did you modify it yourself?
Anyway keep up the excellent quality writing,
it’s rare to see a great blog like this one today.
генеральная уборка квартиры
Hello There. I discovered your blog the use of
msn. That is a very well written article. I will make sure to bookmark it and come back to learn more of your useful info.
Thank you for the post. I’ll certainly comeback.
Цены на клининг спб
Need to pay your bill but the app is broken? Their system is currently rejecting logins.
I found this developer routing table that gives you the direct automated numbers.
Check the routing table here: https://leetcode.com/discuss/post/8197557/verizon-bill-pay-los-angeles-att-immedia-z2f9/
If you need immediate processing, you can dial the backup automated processing hub directly
at 1(888) 279-1450. Highly recommend using this instead of waiting.
Hey! I know this is kinda off topic however , I’d figured I’d ask.
Would you be interested in exchanging links or maybe
guest writing a blog post or vice-versa? My blog discusses a lot of the
same topics as yours and I feel we could greatly benefit from each
other. If you might be interested feel free to shoot me an e-mail.
I look forward to hearing from you! Terrific blog by the way!
Life isan active form of existence of matter that differs from inanimate nature by its metabolism maorou_k8m
вывода из запоя 24 [url=https://vyvod-iz-zapoya-na-domu-sankt-peterburg-22.ru]вывода из запоя 24[/url]
Hello, I enjoy reading all of your article. I wanted to write a little comment to support
you.
врача капельницу от запоя [url=https://kapelnicza-ot-pokhmelya-ekaterinburg-17.ru]врача капельницу от запоя[/url]
капельница от алкоголя на дому самара недорого [url=https://kapelnicza-ot-pokhmelya-samara-29.ru]капельница от алкоголя на дому самара недорого[/url]
Hello colleagues, its great post about educationand completely explained, keep it up all
the time.
генеральная уборка
Incredible points. Outstanding arguments. Keep up the great spirit.
уборка квартир в москве
Fastidious respond in return of this issue with real arguments and
telling all about that.
Oh my goodness! an amazing article. Great work.
I Am Going To have to come back again when my course load lets up – however I am taking your Rss feed so i can go through your site offline. Thanks.
Is it okay to put a portion of this on my weblog if perhaps I post a reference point to this web page?
где заказать кухню в спб [url=https://kuhni-spb-57.ru]https://kuhni-spb-57.ru[/url]
Hi to all, it’s truly a nice for me to pay a visit this site, it contains
useful Information.
I came across an article that talks about the same thing but even more and when you go deeper.
Loving the info on this website , you have done outstanding job on the blog posts.
вывод из запоя спб [url=https://vyvod-iz-zapoya-na-domu-sankt-peterburg-21.ru]вывод из запоя спб[/url]
кухни на заказ санкт петербург от производителя [url=https://kuhni-spb-60.ru]кухни на заказ санкт петербург от производителя[/url]
https://t.me/Asiapsi
Your idea is outstanding; the issue is something that not enough persons are speaking intelligently about. I’m very happy that I stumbled throughout this in my seek for one thing regarding this.
установить рулонные шторы цена [url=https://elektricheskie-rulonnye-shtory99.ru]https://elektricheskie-rulonnye-shtory99.ru[/url]
Excellent post however , I was wanting to know if you could write a litte more on this subject?
I’d be very grateful if you could elaborate a little bit more.
Cheers!
Oh my goodness! an amazing article. Great work.
With this issue, it’s important to have someone like you with something to say that really matters.
Your resources are well developed.
Hello there, You have done an incredible job. I will certainly digg it and personally recommend to my friends. I am sure they will be benefited from this site.
Good site! I truly love how it is easy on my eyes it is. I am wondering how I might be notified when a new post has been made. I’ve subscribed to your RSS which may do the trick? Have a great day!
I just couldn’t leave your web site prior to suggesting that I really enjoyed the standard info an individual supply to your guests? Is going to be again continuously in order to inspect new posts
Very fine blog.
Thanks so much for this, keep up the good work 🙂