So see where you have unused space , what file is how big use the following query....
Use DatabaseName
GO
Select name AS [FileName]
, size/128.0 AS [FileSize(MB)]
, fileproperty(name, 'SpaceUsed')/128.0 AS [Space_Used(MB)]
, (size - fileproperty(name, 'SpaceUsed')) /128.0 AS [FreeSpace(MB)]
From dbo.sysfiles
GO
Finally when you have decided to shrink a file with lots of free space you can use DBCC shrinkfile command to do so.
USE DatabaseName
GO
DBCC SHRINKFILE ('FileName', 10) --<-- will shrink it to 10 MB
GO
Note
If any of the unused space was occupied by the BLOB data type(text, ntext, xml etc) column, you may not be able to claim back that unused space unless you drop and recreate the table again.