Меня спросили, пользуюсь ли я средствами автоматического извлечения терминов. Вот, отвечаю.
«Извлечение терминов» — это рекламное выражение; на самом деле, автоматические средства просто составляют список слов в документе, сортируют его по частоте использования, а под видом терминов представляют наиболее часто встречающиеся слова. Конечно, большинство из них будут обычными общеупотребительными словами, которые нет смысла заносить в термбазу. Специфические термины обычно в верх частотного списка не попадают, так как встречаются реже общей лексики (хотя, конечно, тексты разные бывают).
Тем не менее такую процедуру иногда полезно выполнить перед началом работы с новым клиентом или новой темой: среди общих слов вы получите список имен, товарных знаков, артикулов продукции и т. п. Уточните у клиента, что из этого нужно переводить, а что следует оставить в оригинальном написании, и тогда этот перечень можно будет добавить в термбазу или в автотекст.
В Trados Studio для извлечения терминов служит отдельный модуль Multiterm Extract, но я не понимаю, зачем устанавливать отдельный (платный!) модуль, когда работу со списками гораздо удобнее вести в Excel. Когда-то я потратил полчаса, чтобы написать нехитрый макрос, и теперь я просто открываю исходный файл в Excel, выполняю макрос и получаю частотный список слов в столбце С. Вот такой макрос. Этот список уже можно как угодно редактировать и заносить в САТ-программу.
Sub Ftable()
Dim BigString As String, I As Long, J As Long, K As Long, r As Long
' Array of stop-words and chars
PuncChars = Array(".", ",", ";", ":", "'", "!", "#", _
"$", "%", "&", "(", ")", " - ", "_", "--", "+", _
"=", "~", "/", "\", "{", "}", "[", "]", """", "?", "*")
BigString = ""
r = 1
Application.ScreenUpdating = False
' Loop until blank cell is encountered
Do While Cells(r, 1) ""
BigString = BigString & " " & Cells(r, 1).Value
r = r + 1
Loop
BigString = Trim(BigString)
For I = 0 To UBound(PuncChars)
BigString = Replace(BigString, PuncChars(I), "")
Next I
ary = Split(BigString, " ")
Dim cl As Collection
Set cl = New Collection
For Each a In ary
On Error Resume Next
cl.Add a, CStr(a)
Next a
For I = 1 To cl.Count
v = cl(I)
Cells(I, "C").Value = v
J = 0
For Each a In ary
If a = v Then J = J + 1
Next a
Cells(I, "D") = J
Next I
Range("c1").CurrentRegion.Sort key1:=Range("d1"), order1:=xlDescending, Header:=xlNo
Application.ScreenUpdating = True
End Sub