I’ve been learning a foreign language for 5 years. Now, I easily understand everything I read, I know lots of words and everything seems to be alright, but I still have a problem. My active vocabulary is really poor. What do I mean? When I try to speak in this language, I can’t simply memorize the necessary word, for example. Then I refer to dictionary and see that the word is familiar to me. I don’t know how to improve the situation because there are no native speakers around and nobody can talk to me in order to help me develop my speaking skills. What can you recommend me in such circumstances?
The best way is probably to use it. Speaking is harder than writing, so it's more intense, and tends to be more effective, faster.
But, as you say there are no native speakers around you, I offer some workarounds that helped me:
Talk to yourself in the language. Aloud. Preferably in private. You can talk about your thoughts, or what you're doing, or some specific topic that interests you. Try to make it diverse. When you are not able to express something, describe it, skip it, or look up in a dictionary.
When learning new words, or to refresh something you struggle using in practice, try to form 3 example sentences with that word.
Write. Make pen-friends. If your writing is already pretty good, I would recommend to find the GRE writing test topic examples, and try to do it in the language you are learning.
You need to do this regularly, and even after you are already very comfortable with your active vocabulary. If you don't use a language, it fades away over time, slowly but surely. You need to maintain it, nurture it.
Try to speak with yourself at times.
Conversing with yourself can help bring out a lot of new vocabulary into your active vocabulary as you are forced to use some new words from time to time. Stick to a subject per conversation and pretend you're talking to someone else (which is you). Maybe talk about politics or a favorite subject in school in your new language and try to speak fluently. It is fine to stumble and stutter from time to time, just make sure you try to use new words.
Also, try making a list of words you will try to use each day. Maybe a list of three to five words per day. As you progress through the days, try to use more and more of the new words you use (as long it fits with the conversation). By making a list of new words to add into your active vocabulary, you are also trying to find the right places for the new words thus allowing the new words to enter your active vocabulary since you now know when to use them.
Even try to visit a place where the native language is the language you are learning for vacation or simply for fun/practice. This can be quite expensive and time consuming depending on your current status and location but the knowledge you gain will be plentiful.
The best way to improve your active vocabulary is to spend more time speaking and writing. Here are some great resources:
- italki is a great way to practice your speaking with tutors and professional teachers via Skype. It offers a bunch of languages, and while not free rates, are usually very reasonable and way cheaper than formal classes.
- Lang-8 allows you to write on any topic you'd like and get corrections from native speakers and other users for free. The community's very active, and you can typically get corrections for popular languages within a day or so. Reddit WritingPrompts and these Conversation Questions can be useful for ideas.
- Clozemaster offers fill-in-the-missing-word text-input exercises for thousands of sentences in over 50 languages for free, and can be useful for improving as well as expanding your active vocabulary.
From the sound of it, your reading and listening skills are better than your speaking and writing skills. So you can recognize a lot of foreign words when you read (or hear) them. But when you start with English words, you struggle to find their foreign equivalent.
Even if there is no one to speak to, you can use writing to improve your understanding. That is once you take an English word and discover its foreign equivalent, write the foreign word several times, followed by its English meaning. If you can learn to write, you can probably learn to speak.